Nginx重定向规则不适用于节点应用程序

时间:2016-07-27 20:36:01

标签: node.js nginx

它会重定向所有人,包括my.personal.ip.address,但它只能将我以外的人重定向到博客。当我把它放在默认的nginx文件中时,它正在工作但现在我正在尝试运行我的节点应用程序,我不确定在哪里放置if语句以及为什么它不起作用。

# the IP(s) on which your node server is running. I chose port 3000.
upstream mywebsite {
    server 127.0.0.1:3000;
    keepalive 8;
}

# the nginx server instance
server {
    listen 0.0.0.0:80;
    server_name mywebsite.ca mywebsite;
    access_log /usr/share/nginx/html/yourdomain.log;


    # pass the request to the node.js server with the correct headers
    # and much more can be added, see nginx config options
    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://mywebsite/;

      if ($remote_addr != my.personal.ip.address){
         rewrite ^ http://blog.mywebsite.ca;
     }

      proxy_redirect off;
    }
 }

1 个答案:

答案 0 :(得分:1)

您的节点应用程序是否也在侦听127.0.0.1?

http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
}).listen(3000, "127.0.0.1");