Nginx官方Ingress的Websocket配置

注意!

1-nginx-ingress实现ingress方案是nginx官方提供的,来源地址GitHub - nginxinc/kubernetes-ingress: NGINX and NGINX Plus Ingress Controllers for Kubernetes

2-该配置方案不适用

Welcome - Ingress-Nginx Controller (kubernetes.github.io)

3-ingress-nginx与nginx-ingress是两套不同的基于Nginx的实现ingress的方案

  • ingress-nginx  是Kubernetes官网方案
  • nginx-ingress  是Nginx官网方案

为了使用 NGINX Ingress 控制器对 WebSocket 应用进行负载均衡,你需要在 Ingress 资源定义中添加 nginx.org/websocket-services 注解。这个注解指定了哪些服务是 WebSocket 服务。注解的语法如下:

nginx.org/websocket-services: "service1[,service2,...]"

在这个例子中,nginx.org/websocket-services 注解被设置为 "service1,service2",这意味着 service1 和 service2 都会被识别为 WebSocket 服务。

在以下示例中,我们将对三个应用进行负载均衡,其中一个应用使用了WebSocket协议:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
  annotations:
    nginx.org/websocket-services: "websocket-service"
spec:
  rules:
  - host: example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: webapp-service
            port:
              name: http
      - path: /ws
        pathType: Prefix
        backend:
          service:
            name: websocket-service
            port:
              name: ws
      - path: /api
        pathType: Prefix
        backend:
          service:
            name: api-service
            port:
              name: http

在这个例子中:

  • nginx.org/websocket-services: "websocket-service" 注解指定了名为 websocket-service 的服务为 WebSocket 类型的服务。
  • / 路径映射到名为 webapp-service 的服务。
  • /ws 路径映射到名为 websocket-service 的服务,并且通过注解被标记为 WebSocket 服务。
  • /api 路径映射到名为 api-service 的服务。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值