与工作的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');
'listen'方法要求端口先到达。 –
感谢队友的答案 –