如何解决在k8s集群上使用proxy_pass进行nginx和节点部署时出现随机/间歇性502网关错误
我当前的配置如下
裸金属簇。 SELINUX状态为关闭。
- nginx部署
- nodejs部署
我正在通过ngnix服务提供静态内容,并通过节点服务提供动态内容。下面是我的nginx配置。
worker_processes 4;
#error_log logs/error.log info;
error_log /dev/stdout info;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
#keepalive_timeout 0;
#keepalive_timeout 5;
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 /dev/stdout main;
server {
listen 1080;
server_name localhost $hostname;
root /usr/share/nginx/static/;
# static content
location ~ some-regex {
alias /usr/share/nginx/static/;
# handle cors see 'NGINX-Cookbook' for production quality
add_header 'Access-Control-Allow-Origin' '*';
}
# forward request to node-service
location / {
client_max_body_size 128M;
proxy_buffer_size 256k;
proxy_buffers 4 512k;
proxy_busy_buffers_size 512k;
proxy_http_version 1.1;
# proxy_set_header Connection "";
# proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_socket_keepalive on;
proxy_pass http://nodeserver:3000;
}
}
include servers/*;
}
在我的入口中,我正在使用Nginx服务。我能够几次将请求正确转发到节点服务并获得正确的响应,但是大约50%的请求失败时会出现502错误的网关错误,并且我在nginx pod日志中看到此错误
[错误] 20#20:* 187 connect()失败(111:连接被拒绝) 连接到上游,客户端:10.44.0.2,服务器:localhost,请求: 上游的“ GET / path HTTP / 1.1”: “ http:// node-service-clusterip:3000 / path”,主机: “ my-nginx-node.example.com”
我已经尝试过nginx文档中的多个指令,但无济于事。任何帮助将不胜感激
解决方法
我的kubernetes标签选择器出现错误。我在多个部署中使用了相同的选择器,这导致了路由问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。