我想将 HTTP 流量和 HTTPS 流量重定向到后端 Flask 应用程序,并且我的 nginx.conf 中有下面的代码片段,它适用于 https,但不适用于 http
服务器 { 听80; 听443 ssl; ssl_certificate /usr/local/nginx/server.crt; ssl_certificate_key /usr/local/nginx/server.key; 地点 / { 代理重定向关闭; 代理缓存关闭; 代理密码 http://127.0.0.1:5000; proxy_set_header 主机 $http_host; proxy_set_header X-真实IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
有人能指点一下吗?配置文件片段中有什么明显的问题吗?还是我安装的 Nginx 有误?
谢谢!
答案1
我相信您需要server
为 HTTP 设置单独的块。例如:
server {
listen 80;
location / {
proxy_redirect off;
proxy_cache off;
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
然后您可以listen 80;
从现有server
块中删除它。
答案2
我用 yum 在 Redhat16 机器上安装了 nginx。删除 etc/nginx/conf.d 目录的内容后,一切都按预期运行。似乎该目录中的某些东西正在推翻 http proxy_pass。