所以,我现在很难过。我有两个nodejs应用程序。一个在端口8080上运行,一个在8081上运行。它们都在相同的IP地址上运行。我有两个域名domain1.com和domain2.com。我使用Nginx作为反向代理将domain1.com重定向到端口8080,将domain2.com重定向到端口8081.我现在的问题是domain1.com是唯一可行的。我只能通过访问domain1.com:8081或domain2.com:8081来访问其他节点应用程序。
domain1.com.conf:
server {
listen 80;
server_name domain1.com www.domain1.com;
location / {
proxy_pass http://127.0.0.1:8080;
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;
}
}
domain2.com.conf:
server {
listen 80;
server_name domain1.com www.domain1.com;
location / {
proxy_pass http://127.0.0.1:8081;
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;
}
}
nginx.conf:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
非常感谢任何帮助。我一直在绞尽脑汁这么长时间,我在网上找不到很多相关的答案。 顺便说一句,我在CentOS 6.3上运行所有这些
排除其他问题后再次更新。我发现我的问题可能不是一个nginx问题,因为我完全关闭了nginx服务,我的节点应用程序仍在显示。这很奇怪,因为没有任何东西在端口80上运行。我甚至使用netstat命令来检查端口80上是否有任何东西在运行。我现在很困惑。如果有人知道如何解决这个问题或如何进一步排除故障。请告诉我。
答案 0 :(得分:1)
我不是nginx专家,但这种设置对我有用:
upstream www.domain1.com {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name domain1.com,www.domain1.com;
location / {
proxy_pass http://www.domain1.com;
}
}
# same for domain2
答案 1 :(得分:0)
我不知道这是如何或为何有效,但重启我的服务器似乎解决了这个问题。我仍然没有丝毫的线索是什么造成了这种情况,但是我家的电源闪烁,我的服务器重新启动,一切都运行良好,我必须开始配置。感谢任何试图提供帮助的人。我将ShanShan的答案标记为正确,因为他/她的配置有效且工作正常。