我是 nginx 的新手,我正在努力让我的反向代理配置正常工作。我有一个在 localhost:3010 上运行的 Node 应用程序,我正在尝试通过子域 dev.[sitename].org 上的这个应用程序通过 nginx 提供页面。为了便于阅读,我们只说 dev.example.org。以下是我在 sites-available 中创建的名为 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 配置不正确。我在 sites-enabled 中创建了符号链接(symbolic link)并重新启动了 nginx,以防你认为我可能忘记了这些步骤。
所以我现在的想法是我没有在某处正确引用子域,或者我在 sites-available 中的文件命名错误。任何朝着正确方向的插入都会受到赞赏。
最佳答案
为了确保问题出在 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
目录列表,那么您的问题出在 Node 端。
关于node.js - 使用 nginx 作为 Node 应用程序的反向代理的子域问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21389994/