Dom*_*nik 4 nginx proxy 502-error
我正在尝试通过 nginx 为我的节点应用程序构建一个代理,认为如果节点应用程序失败或在端口上不可用,这会给我错误页面。
节点应用程序继续运行127.0.0.1:1337
,我正在收听mydomain:8080
并转发它。
server {
listen 8080;
server_name mydomain;
access_log /log/path/logging.log;
root /path/to/root/;
error_page 400 401 402 403 404 500 501 502 503 504 /error/index.html;
location / {
proxy_redirect off;
proxy_pass_header Server;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_connect_timeout 5;
proxy_read_timeout 240;
proxy_intercept_errors on;
proxy_pass http://127.0.0.1:1337;
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我关闭节点应用程序并请求mydomain:8080
. 不过,这是 nginx 的预期行为。我想要的是一个我可以定义的页面,该页面将在节点应用程序的服务关闭时显示。
任何想法如何做到这一点?
我找到了答案:
server {
listen 8080;
server_name mydomain;
access_log /log/path/logging.log;
error_page 400 401 402 403 404 405 500 501 502 503 504 @error_page;
location @error_page {
root /var/www/html/;
rewrite ^ https://domain.com/error/index.html;
break;
}
location / {
proxy_redirect off;
proxy_pass_header Server;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_connect_timeout 5;
proxy_read_timeout 240;
proxy_intercept_errors on;
proxy_pass http://127.0.0.1:1337;
}
}
Run Code Online (Sandbox Code Playgroud)
如果服务不可用(所有错误),这会将所有流量重定向maindomain:8080
到。https://domain.com/error/index.html
http://127.0.0.1:1337
希望这对未来的人有所帮助。
归档时间: |
|
查看次数: |
11362 次 |
最近记录: |