如何通过上游端口阻止可用性nodejs应用程序?

时间:2013-08-07 07:36:35

标签: node.js nginx

我通过上游有nginx + nodejs,如下所示:

server {

  listen 0.0.0.0:80;

  upstream app_nodejs {
    server 127.0.0.1:3000;
  } 

  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_nodejs;
    proxy_redirect off;
  }
}

当我通过浏览器指向mysite.com时,我通过80端口输入并路由到3000.但我可以通过3000端口直接访问我的应用程序,如下面的www.mysite.com:3000。在这种情况下,我不使用proxy_pass。

如何阻止不通过proxy_pass访问3000端口?

编辑:我正在使用http模块启动应用程序,所以我怎么能使用这种方法?:

http.createServer(express()).listen(3000, function(req, res) {     
});

1 个答案:

答案 0 :(得分:0)

您需要在端口3000上设置防火墙以接收传入请求,或者(最好)只让node只监听localhost,例如;

server.listen(3000, '127.0.0.1');

......或者在你的情况下;

http.createServer(express()).listen(3000, '127.0.0.1', function(req, res) { 
   ...
});