我正在尝试使用 nginx 和 gunicorn 部署一个网站。Nginx 提供静态文件并充当 gunicorn 的代理。
这是我的 /etc/nginx/sites-available/herbop 文件的内容
server {
listen 80;
server_name herbop.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_intercept_errors on;
proxy_pass http://127.0.0.1:8001;
}
location /static/ {
autoindex on;
alias /opt/Herbop-Backend/app/static/;
}
}
server {
listen 80;
server_name 51.254.123.234;
return 301 $scheme://herbop.com$request_uri;
}
在这种情况下,我似乎得到了无限的重定向循环。
任何想法 ?
答案1
DNS:
herbop.com
使用A
记录指向51.254.123.234
。(删除现有的 http 重定向。)(注意:DNS 是分布式的,有时需要一些时间来传播。)尝试以下 nginx 配置:
server { listen 80; server_name herbop.com; location /static/ { root /opt/Herbop-Backend/app; } location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_intercept_errors on; proxy_pass http://127.0.0.1:8001; } } server { listen 80; server_name 51.254.123.234; return 301 $scheme://herbop.com$request_uri; }
笔记:
- ((如果您只想向访问者提供静态文件,如嵌入到 *.html 中的图像等,则您不需要
autoindex
。“ngx_http_autoindex_module处理以斜杠字符('/')结尾的请求并生成目录列表。[...]“据我所知,您不需要此功能,因此不要启用它。))((不确定我是否理解正确,以及您的静态文件属于哪种类型。)) 关于你的
alias
指示:根据文档:“当位置与指令值的最后一部分匹配时:location /images/ { alias /data/w3/images/; }
最好使用根指令”:
location /images/ { root /data/w3; }
- ((如果您只想向访问者提供静态文件,如嵌入到 *.html 中的图像等,则您不需要