问题描述
我在CentOS 7服务器上安装了Nginx版本1.19.3。我的rocketchat应用程序在端口3000、3001和3002上运行。但是我的Nginx服务器无法将代理路由到Rocketchat。它给我502错误的网关错误。
这是我的default.conf
# Upstreams
upstream backend {
least_conn;
server [::1]:3000 max_fails=3 fail_timeout=30s;
server [::1]:3001 max_fails=3 fail_timeout=30s;
server [::1]:3002 max_fails=3 fail_timeout=30s;
}
# HTTPS Server
server {
listen 443 ssl http2;
server_name example.com;
error_log /var/log/Nginx/rocketchat.access.log;
ssl_certificate /etc/Nginx/certs/example.com.crt;
ssl_certificate_key /etc/Nginx/certs/example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don’t use SSLv3 ref: POODLE
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
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 https;
proxy_set_header X-Nginx-Proxy true;
proxy_read_timeout 5m;
proxy_pass http://backend;
proxy_redirect off;
}
}
这是我在/var/log/Nginx/rocketchat.access.log
中遇到的错误
2020/10/21 16:08:23 [error] 12532#12532: *25 no live upstreams while connecting to upstream,client: local-ip-address,server: example.com,request: "GET /favicon.ico HTTP/2.0",upstream: "http://backend/favicon.ico",host: "example.com",referrer: "https://example.com/"
我已启用3000、3001、3002,并且能够通过本地ip地址访问RocketChat。
我已经尝试了在stackoverfollow上发现的所有解决方案,但是它不起作用。有人可能是个问题吗?
解决方法
您的Rocketchat应用程序是否可以在IPv6本地主机地址:: 1或IPv4 127.0.0.1上运行/访问?
,通过在上游将keepalive设置为8对我有用。
# Upstreams
upstream backend {
least_conn;
server [::1]:3000 max_fails=3 fail_timeout=30s;
server [::1]:3001 max_fails=3 fail_timeout=30s;
server [::1]:3002 max_fails=3 fail_timeout=30s;
keepalive 8;
}