nginx上的NodeJ在url中没有端口号的情况下无法正常工作

时间:2015-05-07 09:42:22

标签: node.js express nginx port

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

http://162.209.01.01:3000显示正确的节点应用 http://162.209.01.01显示nginx欢迎页面(欢迎使用nginx,如果您看到此页面...)

我想将端口3000映射到端口80,以便我可以在不在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);
});

1 个答案:

答案 0 :(得分:0)

您的proxy_pass声明有点偏离。

请尝试以下操作。

proxy_pass http://testApp/;