ノードサーバーをnginxの背後に置いています。私はそれがこのように働いていますが、私はそれが最善ではないと考えている。app.jsノード構成ノード:不良ゲートウェイ
app.use(session({
name: app_config.get('session.name'),
secret: env.get("SESSION_SECRET"),
cookie: {httpOnly: true, secure: true },
store: new MongoStore({ mongooseConnection: mongoose.connection,
touchAfter: app_config.get('session.touchAfter')
})
}));
nginxの中のbin/WWW
server = https.createServer(config, app).listen(3210,'127.0.0.1');
server.on('error', onError);
server.on('listening', onListening);
で
、demo.server.com
server {
listen 0.0.0.0:443;
server_name demo.server.com;
access_log /var/log/nginx/demo.server.com.log;
location/{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header HOST $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass https://127.0.0.1:3210;
proxy_redirect off;
}
}
これは完全に機能します。私の理解では、ノードサーバーはhttpsモードである必要はありません。私は多くのグーグル・グーグルの後に続くように修正しましたが、もちろん動作しません - 私は "502悪いゲートウェイ"を取得します。サーバーが起動し、netstat -aは何かが3210ポートでリッスンしていることを示します。ビン/ WWWで
app.js
app.use(session({
name: app_config.get('session.name'),
secret: env.get("SESSION_SECRET"),
cookie: {secure: true },
store: new MongoStore({ mongooseConnection: mongoose.connection,
touchAfter: app_config.get('session.touchAfter')
})
}));
nginxので
server = http.createServer(config, app).listen(3210,'127.0.0.1');
server.on('error', onError);
server.on('listening', onListening);
、demo.server.com
server {
listen 0.0.0.0:443;
server_name demo.server.com;
access_log /var/log/nginx/demo.server.com.log;
location/{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_read_timeout 5m;
proxy_connect_timeout 5m;
proxy_pass http://127.0.0.1:3210;
proxy_redirect off;
}
}
nginxのエラーログは言う:
2016/10/25 10:46:34 [error] 17278#0: *2 upstream prematurely closed connection while reading response header from upstream, client: xxxxx, server: demo.server.com, request: "GET /itdemo HTTP/1.1", upstream: "http://127.0.0.1:3210/itdemo", host: "demo.server.com"
私は間違って何をしていますか?任意のポインタに感謝し、プレーンなHTTPサーバの場合
を私は入れていない場合は動作しますサーバーがまだ安全な場合は?それはnginxがSSLによって保護されているからです。 – Pat070