如何使用代理传递将所有流量从Nginx重定向到NodeJS

时间:2019-09-05 05:04:53

标签: node.js nginx nginx-reverse-proxy

当我请求http://example.com/something

时,当我设置简单的nginx位置来捕获所有到root的流量并通过代理传递到端口3000上的nodeJS时,

当我进入mydomain.net时,我从nodeJS得到了结果,但是当我尝试example.com/something时,却得到了502 Bad Gateway。

server {
        listen xxx.xxx.xxx.xxx:80;
        server_name example.com  www.example.com;

        location / {
                proxy_pass http://xxx.xxx.xxx.xxx:3000/;
        }

}

我希望nodeJS在端口80上单独运行时,在不使用nginx的情况下可以处理其余的url(在/之后)。

2 个答案:

答案 0 :(得分:0)

在文件中粘贴以下代码,并确保将example.com更改为您的域(或IP),并将1337更改为您的Node.js应用程序端口:

server {
listen 80;
server_name example.com;

location / {
    proxy_set_header   X-Forwarded-For $remote_addr;
    proxy_set_header   Host $http_host;
    proxy_pass         "http://127.0.0.1:3000";
}
}

sudo nginx -t 
sudo service nginx restart

答案 1 :(得分:0)

我发现nginx代码还可以,我的SSL配置似乎在这里产生了问题,并且在检查了nginx的错误日志后,再次启动并成功获取NodeJS的所有位置。谢谢大家。