
nginx 配置了两天了,还是配置不出,我是真的菜。 其中放弃去补了一些 nginx 的知识依然配不出,最后问的 GhatGPT 出来的。 主要问题:http 正常,https 就无法通行。(原因很多,证书的原因,代理的原因,最主要的原因应该是我配置冲突了) ---------废话补多说---上代码----------------------- -------------------------------------------------- 我: 我的域名是 www.v2ex.com,它正常解析到 120.00.00.93 ,我的 80 ,8001 端口正常开放 我有个 Django 程序,python3 manage.py runserveri 8001 我的前端文件是 root /home/www/dist; 现在需要你配置下 nginx 1 、要求能通过 v2ex.com 访问我的网站 2 、要求配置 https,其中证书文件域名都是 v2ex.com 的 ssl_certificate /home/Nginx/1_v2ex.com_bundle.crt; #请填写私钥文件的相对路径或绝对路径 ssl_certificate_key /home/Nginx/2_v2ex.com.key; 3 、对其中的 api 开头的都转到我的 django 程序 8001 端口 4 、请注意 https 的问题 ------ChatGPT------------------------------------- server { listen 80; listen [::]:80; server_name v2ex.com www.v2ex.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl; listen [::]:443 ssl; server_name v2ex.com www.v2ex.com; # SSL 证书配置 ssl_certificate /home/Nginx/1_v2ex.com_bundle.crt; ssl_certificate_key /home/Nginx/2_v2ex.com.key; location / { root /home/www/dist; try_files $uri $uri/ /index.html; } location /api { proxy_pass http://127.0.0.1:8001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ------ChatGPT------------------------------------- ------我的错误配置------------------------------------- server { listen 80; server_name 120.00.000.93; #打码处理 # 配置静态文件目录 location / { root /home/www/dist; try_files $uri $uri/ /index.html; } location /api { proxy_pass http://120.00.000.93:8001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 443 ssl; server_name www.v2ex.com; ssl_certificate /home/Nginx/1_v2ex.com_bundle.crt; ssl_certificate_key /home/Nginx/2_v2ex.com.key; ssl_session_timeout 5m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location / { root /home/www/dist; # 用于配合 browserHistory 使用 try_files $uri $uri/ /index.html; } location /api { proxy_pass https://localhost:8001/; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; } } ------我的错误配置------------------------------------- 1 shubiao 2023-03-18 16:40:26 +08:00 chat-gpt, 这么强?!!!! 这比人脑的知识储备大无数倍,还能听懂人话,还能给出正确的答案 |
2 SenLief 2023-03-18 16:47:40 +08:00 proxy_pass https://localhost:8001/; |
3 documentzhangx66 2023-03-18 16:51:42 +08:00 |
4 documentzhangx66 2023-03-18 16:53:29 +08:00 楼主这种问题,主流的处理方法是,先去 nginx 官网,把示例配置文件扒下来跑。 功后,再逐行修改为你需要的配置,每改一行,就重启服务,看看有没有错误。 遇到错误,去翻日志。 这种方法对于处理复杂配置文件,有奇效。 |
5 zhangyichent 2023-03-18 17:03:15 +08:00 @documentzhangx66 GPT-4 已经有了长足进步,去试试看吧,真的很可怕 |
6 Phasma 2023-03-18 17:11:09 +08:00 80 写个跳转到 443 443 只写一次反代配置就行了 |
7 Phasma 2023-03-18 17:11:31 +08:00 proxy_pass https://localhost:8001/; ”httpS“ |
8 zzping OP @documentzhangx66 谢谢,我一直在逐行调试自己的代码,没想到您这种方式调试,晚上再试试 |
10 bjzhush 2023-03-19 09:16:00 +08:00 逐行调试是错误的方法,因为 Nginx 配置的最小单位是块 |