我尝试了好几次,尝试修复下面使用 unicorn 的 nginx 代码,但就是不起作用。所以现在在最后一份报告中发布,一些更有才华的人可以看到我的错误,其他人也可以从中受益。
我在用着:
- nginx
- 独角兽
问题是
- 没有显示 502 错误(我使用 cap deploy:web:disable 任务来编写 Maintenance.html)
- 如果 nginx 正在运行但 unicorn 没有运行,我也会收到 502 错误页面
nginx 配置:
upstream unicorn {
server unix:/srv/books/shared/tmp/unicorn.sock fail_timeout=0;
}
server {
listen 80 deferred;
server_name books.*;
client_max_body_size 4G;
keepalive_timeout 10;
server_tokens off;
root /srv/books/public;
location / {
try_files /system/maintenance.html $uri/index.html $uri @unicorn;
}
try_files $uri/index.html $uri @unicorn;
location @unicorn {
error_page 502 /system/maintenance.html;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unicorn;
}
}
答案1
将error_page
指令放在 下server
,而不是 下location
。