2014-07-15 31 views
0

与工作的NodeJS我有5个可用IP地址的专用服务器,说X.X.X.1 - X.X.X.5下面是我的IP缺省模式Nginx的反向代理没有在本地主机

X.X.X.1地址 - ns1.ex.com - 域名服务器使用BIND

X.X.X.2 - ns2.ex.com

X.X.X.3 - www.ex.com - 使用nginx的作为Web服务器

X.X.X.4 - 没有什么

X.X.X.5 - 没有

现在我试图做nodejs(127.0.0.1:4501)反向代理....我已经开始应用,当我试图访问通过反向代理它不工作节点的应用程序。我甚至试图调用像http://localhost:4501/http://localhost:4501/test/的卷曲,因为app.js出现在/var/www/test/app.js。我也尝试将应用程序IP地址更改为XXX3,但没有结果

当我没有设置节点应用程序的IP地址时,它正在处理我放入的任何端口。我想设置IP地址到本地主机,以便它只能通过Nginx访问,我有我的数据库,我也想躲在Nginx后面。

下面是我的conf文件:

nginx.conf:出席/usr/local/nginx/conf/nginx.conf

#=============================================================================== 
#  Main Configuration Settings 
#=============================================================================== 
user root admins; 
worker_processes auto; 
master_process on; 
worker_rlimit_nofile 16384; 
worker_priority 0; 

#================================================================================ 
# Error Log Setting Goes HEre 
#================================================================================ 

events { 
    multi_accept off; 
    worker_connections 5120; 
} 

http { 
    include mime.types; 
    default_type application/octet-stream; 

    open_file_cache max=10000 inactive=30s; 
    open_file_cache_errors on; 
    client_body_buffer_size 200M; #200 MB 

    log_not_found on; #LOG All 404 error code 
    log_format main '{' 
     ' IP:"$remote_addr:$remote_port", Time:"$time_local", Request_Type:"$request", ' 
     ' Status:"$status", Referer:"$http_referer", ' 
     ' Agent:"$http_user_agent", Forwarded_By:"$http_x_forwarded_for" ' 
    '}'; 

    #=========================================== 
    # Caching DNS records For 1 HR 
    #========================================== 
    resolver 8.8.8.8 8.8.4.4 valid=1h; 
    resolver_timeout 10s; 

    #sendfile on; 

    keepalive_timeout 10; 

    #================================================================================= 
    # Gzip Module 
    #================================================================================= 
    gzip on; 
    gzip_comp_level 4; 
    gzip_min_length 20; 
    gzip_vary on; 
    gzip_proxied any; 
    upstream localhost_servers { 
     server 127.0.0.1:4501; 
     keepalive 64; 
    } 
    server { 
     listen  80; 
     server_name www.ex.com ex.com; 
     charset UTF-8; 
     location/{ 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarder-For $proxy_add_x_forwarded_for; 
      proxy_set_header Host $http_host; 
      proxy_set_header X-NginX-Proxy true; 
      proxy_pass http://localhost_servers; 
      proxy_redirect off; 
     } 
     error_page 500 502 503 504 /50x.html; 
     location = /50x.html { 
      root html; 
     } 

    } 
} 

app.js:在/var/www/test/app.js

var express  = require('express'); 
var morgan   = require('morgan'); 
var bodyParser  = require('body-parser'); 
var methodOverride = require('method-override'); 
var app   = express(); 
app.use(express.static(__dirname + '/public'));   
app.use(morgan('dev'));           
app.use(bodyParser.urlencoded({extended:true})); 
app.use(bodyParser.json());            
app.use(methodOverride());          

app.get('/',function(req,res){ 
    console.log(req.ip,req.host,req.path,req.originalUrl); 
    res.send(req.body); 
}); 
app.listen('127.0.0.1',4501); 
console.log('Magic happens on port 80'); 
+1

'listen'方法要求端口先到达。 –

+0

感谢队友的答案 –

回答

0

这是一个非常愚蠢的错误从我身边指向@Ben Fortune快递监听方法先取端口再ip地址