Node.js 应用程序的 Nginx 代理配置问题
Posted
技术标签:
【中文标题】Node.js 应用程序的 Nginx 代理配置问题【英文标题】:Nginx proxy config problems for Node.js app 【发布时间】:2015-03-09 00:20:45 【问题描述】:我几乎可以肯定这只是我的无知,并希望这很容易解决,但基本上 mydomain.com:3000 提供正确的内容,但 mydomain.com 没有。这是我的 nginx.conf.default 文件的内容:
upstream mydomain
server 127.0.0.1:3000;
keepalive 8;
server
listen 0.0.0.0:80;
server_name mydomain.com www.mydomain.com;
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://mydomain/;
proxy_redirect off;
我一直在关注这篇文章,但无法弄清楚我的错误在哪里: http://dailyjs.com/2010/03/15/hosting-nodejs-apps/
(注意:我相信我的 nginx 安装与此不同,因为没有可用的站点文件夹。相反,我正在编辑 nginx.conf.default 文件,因为我在我看到的 localhost 服务器的行上方已经到了。)
基本上,我想要的是能够访问 mydomain.com 来加载内容,而不是 mydomain.com:3000。
【问题讨论】:
【参考方案1】:随着 NginX 的较新安装,有一个名为 vhosts 的子文件夹。虚拟主机配置数据需要放在这个文件夹中。如果您使用 UI 将域添加到 cPanel,它会自动创建一个 vhost 文件。
【讨论】:
【参考方案2】:这都是发行版和软件包的问题,而不是 nginx 版本,I've explained this in a different answer before,主要且唯一重要的文件是 nginx.conf
,如果您检查该文件,您将知道哪些文件夹重要,哪些不重要,例如 debian 发行版在他们的配置中添加这一行
include /etc/nginx/sites-enabled/*;
这样自动包含sites-enabled
文件夹中的所有文件,
Redhat 发行版只使用这一行
include /etc/nginx/conf.d/*.conf;
顺便说一句,它仍然包含在 debian 分布式配置中,
这意味着只考虑/etc/nginx/conf.d
内的文件,并且它们必须以.conf
结尾
只需检查您的 nginx.conf
并确保您的配置位于包含的文件夹中,至于配置本身,它似乎应该可以正常工作。
【讨论】:
谢谢 - 这实际上是我找出 vhosts 文件夹及其文件的方式,是我需要进行编辑的地方。以上是关于Node.js 应用程序的 Nginx 代理配置问题的主要内容,如果未能解决你的问题,请参考以下文章
Nginx 反向代理 Serving Node.js app 静态文件