其他可以尝试的事情

其他可以尝试的事情

我知道我已经接近目标了,但我似乎无法将我的node.js应用程序连接到NGINX反向代理。我的节点应用程序在本地运行,配置文件测试正常。上传到 Digital Ocean 后无法连接。

错误是502错误的网关

有些东西缺失了,经过几个小时的谷歌搜索和测试,我仍然找不到问题所在。非常感谢大家的帮助!

这些是我的文件中的相关行nginx.conf

 server {
        listen        80;
        listen        [::]:80;
        server_name   myDomainName.com;
        root          /www/html;

        location / {
             index       index.html;
        }

        location /proxytest {
            proxy_pass "http://www.myDomainName.com:8080";
        }

    }

这是我的node.js测试应用程序。

const express = require('express');

const app = express();

app.get('/', (request, response) => {
    response.send('Hello World!');
});

app.listen(8080, () => {
    console.log('Server is up on port 8080');
});

答案1

如果所有这些都运行在一个实例上,那么通常 Nginx 想要与在端口 8080 上运行的本地 nodejs 服务进行通信,因此 localhost 比www.myDomainName.com

这通常是这样的

 location /proxytest {
            proxy_pass http://localhost:8080;
        }

无论您将 proxy_pass 值设置为何值,您都应该从 nginx box 命令行检查该地址是否可用。

# curl -I  http://localhost:8080
HTTP/1.1 200 OK
X-Powered-By: Express
Date: Tue, 06 Feb 2018 02:23:35 GMT
Connection: keep-alive

您还可以检查 nginx 上的错误日志,看看它是否报告了任何有趣的内容。

vi /var/log/nginx/error.log

其他可以尝试的事情

如果您使用的是 selinux 发行版(CentOS、Fedora、RHEL……),请尝试禁用 selinux,然后再次尝试请求

 # setenforce Permissive
 setenforce: SELinux is disabled

相关内容