node.js&nginx代理设置 – 有问题,但是什么?

所以我用这个stackoverflow的答案尝试设置我的本地(在OSX)nginx服务器上有我的node.js网站成功发布到127.0.0.1:3000出现在my_url.org在我的浏览器。 它不工作。

这里是我的nginx服务器:我已经直接在nginx.conf文件中尝试了这个,并作为一个单独的文件,我在网站的可用文件夹中创build,然后创build链接到启用网站的文件夹(根据上面链接的答案)

upstream app_name { server 127.0.0.1:3000; keepalive 8; } server { listen 0.0.0.0:80; server_name my_url.org my_url; access_log /usr/local/var/log/nginx/my_url.org.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_name/; proxy_redirect off; } } 

一些线索:

  1. 我知道节点正在工作,因为我可以看到在127.0.0.1:3000的代码
  2. 我知道nginx.conf文件设置正确,因为: sudo nginx -t告诉我这样,我有一个单独的服务器在nginx.conf文件通过端口8080正确通过。
  3. 到目前为止,任何错误日志都是空白或不存在的。
  4. 当我去my_url.org我看到该网站托pipe的远程服务器。 不是127.0.0.1:3000。
  5. 每次更改后,我sudo nginx -s reload
  6. 我已经试过listen 80;listen 0.0.0.0:80同样不成功。
  7. 当我在启用链接的站点的文件夹中使用上面的代码尝试这个function时,我已经include /usr/local/etc/nginx/sites-enabled/*; 在nginx.conf文件中。 当我在nginx.conf文件中有上面的代码时,我将注释掉。

我假设我失去了一些显而易见的东西,但是错过了我。 任何帮助不胜感激。

你应该把my_url.org指向你的主机文件中的127.0.0.1(用linux和my_url.org它应该在/etc/hosts )。

否则,您的浏览器将不知道重定向到您的本地服务器。

(我回答了一个评论,在这里为未来的开发者提供同样的问题。)