繁体   English   中英

Nginx使用Node.js进行后备

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM