node.js - 如果 url 中没有端口号,nginx 上的 NodeJs 将无法工作

标签 node.js express nginx port

我已经尝试了很多事情,我正在 nginx 服务器上使用 ExpressJS 运行 NodeJS 应用程序,只要我将 :3000 (或任何其他端口)添加到我的 url 中,一切都会正常

http://162.209.01.01:3000 显示正确的 Node 应用程序 http://162.209.01.01 显示 nginx 欢迎页面(欢迎来到 nginx,如果您看到此页面...)

我想将端口 3000 映射到端口 80,这样我就可以加载 Node 应用程序,而无需在 URL 中输入端口。

这是我的sites-enabled/default 文件:

upstream testApp {
server 127.0.0.1:3000;
    keepalive 64;
}

server {
    listen 80;
    server_name .testApp;
    access_log /var/log/nginx/simplyAsk.log;

    location / {
            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 $scheme;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_pass http://162.209.01.01;
            proxy_redirect off;
            proxy_http_version 1.1;
    }
}

这是我的 bin/www 文件:

#!/usr/bin/nodejs
var debug = require('debug')('my-application');
var app = require('../app');

app.set('port', process.env.PORT || 3000);

var server = app.listen(app.get('port'), function() {
    debug('Express server listening on port ' + server.address().port);
});

最佳答案

您的 proxy_pass 声明有点不对劲。

尝试以下操作。

proxy_pass http://testApp/;

关于node.js - 如果 url 中没有端口号,nginx 上的 NodeJs 将无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30097334/

相关文章:

mysql - SQLSTATE[23000] 在非空列上 [ANGULAR 5 & NODEJS]

node.js - 如何防止 mongodb 支持的分布式 Nodejs Web 服务器架构中的竞争条件

javascript - 在 Express 中停止执行已取消的请求

django - 长时间运行请求的 nginx 502 错误网关

linux - 在 Nginx 上将 http 重写为 https

nginx - 从 Google Container Engine 转发 HTTPS 客户端 IP

Node.js 未按预期输出

node.js - 为什么在 npm 安装 gh-pages 后 git bash 无法将 gh-pages 识别为有效命令? [GatsbyJS,GitHub 页面]

node.js - nodejs 抛出 TypeError : process. uptime is not a function

node.js - 当您的处理程序函数退出时,aws-lambda 中的 goroutines 会发生什么?