我是 Nginx 的新手,但它似乎并不复杂。我有两个节点应用程序(使用 forever),一个在端口 2368 上运行(域 A),另一个在 2367 上运行(sub.domainB)。
domainA 工作正常。但是 sub.domainB 报告 502 错误。
这是我的配置文件:
服务器运行的是 Ubuntu 15.04
/etc/nginx/nginx.conf
user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
server_names_hash_bucket_size 64;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
etc/nginx/sites-available/domainA.com
server {
listen 80;
server_name domainA.com;
location / {
proxy_pass http://my_ip:2368;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
etc/nginx/sites-enabled/sub.domainB.com
server {
listen 80;
server_name sub.domainB.com;
location / {
proxy_pass http://my_ip:2367;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
答案1
上述配置是正确的,但是,在我的应用程序中,我指向位于 sub.domainB.com 的节点应用程序的生产环境中的 127.0.0.1。将其更改为机器的 IP 地址(与其他节点应用程序一样)解决了该问题。