在同一个域上使用nginx提供多个节点应用程序

时间:2013-08-13 00:48:04

标签: node.js nginx

我想在同一个域中使用nginx托管2个不同的节点应用程序,但遇到了一些麻烦。我想:

mydomain.com 指向节点应用 firstApp otherapp.mydomain.com 指向节点应用其他

目前,我可以访问 firstApp ,但我无法通过otherapp.mydomain.com访问 otherapp

firstApp 的配置如下所示:

upstream firstApp{
    server 127.0.0.1:8123;
}

server{
    server_name mydomain.com;
    access_log /var/log/nginx/me.log;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://firstApp/;
        proxy_redirect off;
    }
}

otherapp 的配置如下所示:

upstream otherapp{
    server 127.0.0.1:8124;
}

server{
    server_name otherapp.mydomain.com;
    access_log /var/log/nginx/me.log;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://otherapp/;
        proxy_redirect off;
    }
}

我已经在nginx sites-available目录中创建了两个配置,它们都在启用站点的目录中链接,并且我已经重新启动了nginx。有人能告诉我我做错了吗?

谢谢, 斯瓦拉杰

3 个答案:

答案 0 :(得分:4)

刚刚发现了问题所在。虽然我的nginx配置是正确的,但我没有将我想要的子域添加到我的域名提供者(namecheap)。我在namecheap上添加了我的子域名,现在一切正常。

答案 1 :(得分:3)

我遇到了同样的问题,花了一些时间研究后我写了一篇博文,在那里我详细解释了我是如何解决它的,我希望它有所帮助。这是:http://blog.donaldderek.com/2013/08/cf-i-configure-your-staging-machine-with-node-js-and-nginx/

答案 2 :(得分:3)

你应该像这样配置你的nginx文件

server {
        listen 80;  
        server_name biger.yourdomain.cn;


        access_log      /data/log/nginx/access_ab.log;
        error_log       /data/log/nginx/error_ab.log;

        location /firstApp {
             proxy_store off;
             proxy_redirect off;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header Host $http_host;
             proxy_pass http://localhost:8001/;
        }

}

maeby您需要将此代码添加到您的项目中

app.enable(' trust proxy');