Nginx 在google ingress controller中建立https后,websocket连接失败
我在kubernetes中部署了一个应用程序,它由GoogleIngressController(服务名为ELB)提供服务。应用程序运行良好。但在我应用https相关配置的那一刻,https即将到来,但websocket失败了 下面是服务文件和配置映射 对于http:Nginx 在google ingress controller中建立https后,websocket连接失败,nginx,websocket,kubernetes,amazon-elb,kubernetes-ingress,Nginx,Websocket,Kubernetes,Amazon Elb,Kubernetes Ingress,我在kubernetes中部署了一个应用程序,它由GoogleIngressController(服务名为ELB)提供服务。应用程序运行良好。但在我应用https相关配置的那一刻,https即将到来,但websocket失败了 下面是服务文件和配置映射 对于http: kind: Service apiVersion: v1 metadata: name: ingress-nginx namespace: ingress-nginx labels: app: ingress-
kind: Service
apiVersion: v1
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app: ingress-nginx
annotations:
# Enable PROXY protocol
service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: '*'
# Increase the ELB idle timeout to avoid issues with WebSockets or Server-Sent Events.
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: '3600'
spec:
type: LoadBalancer
selector:
app: ingress-nginx
ports:
- name: http
port: 80
targetPort: http
- name: https
port: 443
targetPort: https
---------------------------------------------------------------------------------------------------
kind: ConfigMap
apiVersion: v1
metadata:
name: nginx-configuration
namespace: ingress-nginx
labels:
app: ingress-nginx
data:
use-proxy-protocol: "true"
对于https:
kind: Service
apiVersion: v1
metadata:
name: ingress-nginx
namespace: ingress-nginx
labels:
app: ingress-nginx
annotations:
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:us-east-1:2xxxxxxxxxxxxxxxxxxx56:certificate/3fxxxxxxxxxxxxxxxxxxxxxxxxxx80"
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "http"
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "https"
# Increase the ELB idle timeout to avoid issues with WebSockets or Server-Sent Events.
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: '3600'
spec:
type: LoadBalancer
selector:
app: ingress-nginx
ports:
- name: http
port: 80
targetPort: http
- name: https
port: 443
targetPort: http
------------------------------------------------------------------------------------------
kind: ConfigMap
apiVersion: v1
metadata:
name: nginx-configuration
namespace: ingress-nginx
labels:
app: ingress-nginx
data:
use-proxy-protocol: "false"
configmap中是否缺少任何注释或数据?请帮帮我我想问题在于注释:
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "http"
对于websocket连接,ELBs中的后端协议必须是TCP
另外,我看到您正在使用Nginx入口控制器,也许您想在配置中设置这些变量
proxy-read-timeout: "3600"
proxy-send-timeout: "3600"
以避免连接关闭。您好!如果答案解决了问题,请将其标记为正确