我是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中创建了符号链接,以防您认为我可能忘记了这些步骤。
所以我现在的想法是,我不是在某处正确引用子域名,或者我在站点中的文件可能被命名为错误。任何正确方向的推动都将受到赞赏。
答案 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的东西!修复了上面发布的配置