node.js& nginx代理设置 - 有些不对劲,但是什么?

时间:2016-02-01 00:10:10

标签: node.js nginx

所以我使用this stackoverflow answer尝试设置我的本地(在osx上)nginx服务器,让我的node.js网站成功发布到127.0.0.1:3000,以便在我的my_url.org上显示浏览器。它不起作用。

这是我的nginx服务器:我已经在nginx.conf文件中直接尝试了这个,并作为我在sites-available文件夹中创建的单独文件,然后创建了指向sites-enabled文件夹的链接(按回答如上所述)

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. 看到代码
  3. 我知道nginx.conf文件设置正确,因为:sudo nginx -t告诉我这样,我在nginx.conf文件中有一个单独的服务器在端口8080上正确通过。
  4. 到目前为止,所有错误日志都是空白或不存在。
  5. 当我访问my_url.org时,我看到托管该网站的远程服务器。不是127.0.0.1:3000。
  6. 每次更改后sudo nginx -s reload
  7. 我同时尝试了listen 80;listen 0.0.0.0:80同样缺乏成功。
  8. 当我在链接的启用站点的文件夹中使用上面的代码尝试此操作时,我在nginx.conf文件中有一行include /usr/local/etc/nginx/sites-enabled/*;。当我在nginx.conf文件中有上述代码时,我会注释掉该行。
  9. 我假设我错过了一些明显但却错过的东西。任何帮助都非常感激。

1 个答案:

答案 0 :(得分:2)

你必须在你的hosts文件中指向my_url.org到127.0.0.1(与linux和linux一样,它应该在/etc/hosts中)。

否则您的浏览器无法重定向到您的本地服务器。

(我在评论中回答说,在这里向未来的开发者提出同样的问题。)