使用nginx作为节点应用程序的反向代理的子域问题

时间:2014-01-27 19:35:51

标签: node.js nginx subdomain reverse-proxy

我是nginx的新手,我正在努力让我的配置为反向代理工作。我有一个在localhost:3010上运行的节点应用程序,我正试图通过这个应用程序在subdomain dev。[sitename] .org上通过nginx提供页面。我们只是说dev.example.org的可读性。以下是我在站点中创建的文件的内容 - 可用的名为example.org(这个文件的名称是正确的吗?):

server {
    server_name www.example.org example.org;
}

upstream app_dev.example.org {
    server 127.0.0.1:3010;
}

server {
    listen 0.0.0.0:80;
    server_name dev.example.org;
    access_log /var/log/nginx/dev.example.access.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://app_dev.example.org/;
            proxy_redirect off;
    }
}

这主要基于以下相关问题:Node.js + Nginx - What now?但是当我尝试在浏览器中打开dev.example.org时,Chrome会报告无法找到该页面。我可以ping dev.example.org并获取一个IP地址,所以服务器似乎可用,但我的nginx配置不正确。我在启用了网站并重新启动的nginx中创建了符号链接,以防您认为我可能忘记了这些步骤。

所以我现在的想法是,我不是在某处正确引用子域名,或者我在站点中的文件可能被命名为错误。任何正确方向的推动都将受到赞赏。

2 个答案:

答案 0 :(得分:1)

为了确保问题出在nginx上,请尝试以下步骤:

在端口3030设置测试服务器,为系统doc文件夹或其他任何内容提供服务。

server {
    listen 3030
    location / {
     root /usr/share/doc/;
     autoindex on;
    }
}

upstream simple_test {
    server 127.0.0.1:3030
}

然后在下面使用simple_test:

proxy_pass http://simple_test/;

如果您在访问dev.example.org时看到/usr/share/doc目录列表,则问题出在节点端。

答案 1 :(得分:1)

原来是阻塞端口80的东西!修复了上面发布的配置