区总工会网站建设流程,wordpress博客主题推荐,wordpress小说,电子商城平台文章目录 小结问题解决参考 小结
在Kubernetes环境中是通过Nginx Ingress来从外部访问Kubernetes内部的环境#xff0c;并用API Gateway来分发请求#xff0c;碰到了 502 Bad gateway.的问题#xff0c;并尝试解决。
问题
从外部通过Nginx Ingress访问Kubernetes内部的环… 文章目录 小结问题解决参考 小结
在Kubernetes环境中是通过Nginx Ingress来从外部访问Kubernetes内部的环境并用API Gateway来分发请求碰到了 502 Bad gateway.的问题并尝试解决。
问题
从外部通过Nginx Ingress访问Kubernetes内部的环境API Gateway返回错误 502 Bad gateway. 这里API Gateway也起到了Load Balancer的作用。 [johnNode1 ~]$ curl -H Host:apigw.com http://192.168.18.16:80/Test Application/process
html
headtitle502 Bad Gateway/title/head
body
centerh1502 Bad Gateway/h1/center
hrcenternginx/1.25.1/center
/body
/html查看Nginx运行的实例
[johnMaster ~]$ kubectl get pods -o wide -A | tail -n 2
nginx-ingress nginx-ingress-c46vc 1/1 Running 0 31d 10.244.3.163 Node1 none none
nginx-ingress nginx-ingress-hvqjg 1/1 Running 0 31d 10.244.4.164 Node2 none none
查看错误日志
[johnMaster ~]$ kubectl logs -f nginx-ingress-hvqjg -n nginx-ingress可以看到类似以下错误connect() failed (111: Connection refused) while connecting to upstream。
查看Nginx的配置文件
[johnMaster ~]$ kubectl exec -it nginx-ingress-c46vc -n nginx-ingress -- /bin/bash
nginxnginx-ingress-hvqjg:/$ cat /etc/nginx/nginx.conf
nginxnginx-ingress-hvqjg:/$ cat /etc/nginx/conf.d/default-apigw-ingress.conf解决
通常情况下需要去查找后台服务的问题有可能是后台服务没有正常启动所导致的连接问题。
确认了后台服务没有问题后那么需要去看Nginx Ingress的配置问题。 以下是正确Ngnix Ingress配置示例 在Nginx Ingress的pod中
nginxnginx-ingress-hvqjg:/$ cat /etc/nginx/conf.d/default-apigw-ingress.conf
# configuration for default/apigw-ingressupstream default-apigw-ingress-apigw.com-apigw-service-80 {zone default-apigw-ingress-apigw.com-apigw-service-80 256k;random two least_conn;server 10.244.3.169:8090 max_fails1 fail_timeout10s max_conns0;server 10.244.4.171:8090 max_fails1 fail_timeout10s max_conns0;}
server {listen 80;server_tokens on;server_name apigw.com;set $resource_type ingress;set $resource_name apigw-ingress;set $resource_namespace default;location / {set $service apigw-service;proxy_http_version 1.1;proxy_connect_timeout 60s;proxy_read_timeout 60s;proxy_send_timeout 60s;client_max_body_size 1m;proxy_set_header Host $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-Host $host;proxy_set_header X-Forwarded-Port $server_port;proxy_set_header X-Forwarded-Proto $scheme;proxy_buffering on;proxy_pass http://default-apigw-ingress-apigw.com-apigw-service-80/;}location /eureka {set $service eureka-lb;proxy_http_version 1.1;proxy_connect_timeout 60s;proxy_read_timeout 60s;proxy_send_timeout 60s;client_max_body_size 1m;proxy_set_header Host $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-Host $host;proxy_set_header X-Forwarded-Port $server_port;proxy_set_header X-Forwarded-Proto $scheme;proxy_buffering on;proxy_pass http://default-apigw-ingress-apigw.com-eureka-lb-80/;}}
参考
Stackoverflow: 502 Bad gateway when trying to connect to backend Nginx Ingress Installation with Manifests server fault: connect() failed (111: Connection refused) while connecting to upstream stackoverflow: Why does attempting to connect to my ingress show connection refused? CSDN: nginx报错connect() failed (111: Connection refused) while connecting to upstream CSDN: Nginx报502错误日志connect() failed (111: Connection refused) while connecting to upstream的个人有效解决方案 Kubernetes Ingress