![](/img/trans.png)
[英]varnish, nginx, & node.js: static nginx html pages with node.js fallback
[英]Nginx fallback with Node.js
我目前遇到NGINX的一些配置问题,如果服务器关闭或目录不存在,我会不断收到502错误,而不是NGINX退回到另一个目录。
我在端口:3000上运行Node.js应用程序,设置了SSL,并将所有HTTP请求重定向到HTTPS。 给定我的node.js应用程序处于脱机状态的情况,如果可能的话,我希望将客户端发送到默认的NGINX根目录/usr/share/nginx/html
index index.htm index.html
。
我试图在/
上显示端口3000上的nodejs应用程序,但在服务器关闭的情况下,回退到NGINX默认目录并在其中显示index.html。 任何人都可以帮助或指导我完成此过程吗?
谢谢
编辑 :我已经尝试了jfriend00在评论中说,但现在我的proxy_pass似乎不起作用。 现在无论我的服务器是否运行,它都默认为500.html。 我已经附上了我的nginx.conf文件,不胜感激。
events {
worker_connections 1024;
}
http {
upstream nodejs {
server <<INTERNAL-PRIVATE-IP>>:3000; #3000 is the default port
}
...
server {
listen 80;
server_name <<PUBLIC-IP>>;
return 301 $scheme://<<DOMAIN>>$request_uri;
}
server {
listen 443;
ssl on;
server_name <<DOMAIN>>.com www.<<DOMAIN>>.com;
...
location / {
proxy_pass http://nodejs;
proxy_redirect off;
proxy_set_header Host $host ;
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 https;
}
error_page 501 502 503 /500.html;
location = /500.html {
root /usr/share/nginx/html;
}
}
}
添加error_page的方法与上述操作相同,并且成功地将其踢回。 谢谢@ jfriend00。
如果要将其部署到实时服务器上,则可能需要检查一下 ,因为我很难理解为什么我的proxy_pass和NGINX配置不能在EC2上部署的CentOS上运行。 它与error_page无关。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.