如何为Nginx Ingress设置max_conn参数?
Nginx Ingress Controller 设置
max_conn 限制连接数 你可以通过两种方式配置 max_conn(对应Nginx的max_conns指令),分别适用于全局生效和单个Ingress资源生效的场景:
1. 全局配置(通过Helm Values)
如果需要让所有通过该Ingress Controller暴露的服务都限制最多2个客户端连接,可在Helm安装/升级时设置全局参数:
方式一:使用--set参数直接指定
helm install nginx-ingress ingress-nginx/ingress-nginx \ --set controller.config.max-connections=2
如果是已部署的实例,执行升级命令:
helm upgrade nginx-ingress ingress-nginx/ingress-nginx \ --set controller.config.max-connections=2
方式二:修改values.yaml文件
在自定义的values.yaml中添加以下配置:
controller: config: # 全局限制每个服务的最大并发连接数为2 max-connections: "2"
然后执行安装/升级:
helm install nginx-ingress ingress-nginx/ingress-nginx -f values.yaml
2. 单个Ingress资源配置(通过注解)
如果只需要限制某一个特定服务的连接数,直接在对应的Ingress清单中添加注解即可,该配置优先级高于全局设置:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: my-target-service-ingress annotations: # 仅对该Ingress对应的服务限制最大2个并发连接 nginx.ingress.kubernetes.io/max-conns: "2" spec: rules: - host: your-domain.com http: paths: - path: / pathType: Prefix backend: service: name: your-target-service port: number: 80
应用该Ingress清单:
kubectl apply -f your-ingress.yaml
注意事项
max-connections的值需要以字符串形式配置(加引号),避免Helm解析时出现类型错误;- 这里的限制是并发连接数,不是总连接数,当达到限制后,新的连接会被Nginx拒绝。
内容的提问来源于stack exchange,提问作者fedos 3d
相关产品推荐
相关产品推荐

