我目前遇到一些配置问题与NGINX,我不断收到502错误,而不是NGINX回落到不同的目录,如果服务器关闭或目录不存在。Nginx后备与Node.js
我在端口上运行Node.js应用程序:3000,设置了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;
}
}
}
还有一个类似的问题没有答案[http://stackoverflow.com/questions/15142692/varnish-nginx-node-js-static-nginx-html-pages-with-node-js-fallback](here) 。另一位提问者经历了一种非常规的方法。 – Bryan
这样做的一种方法:http://serverfault.com/questions/511109/nginx-local-fallback-error-page-if-proxy-destination-is-unavailable – jfriend00
嗯。我会去看看它,但是一眼看出来,把root放在位置块里面不错吧? @ jfriend00 – Bryan