为何ingress-nginx代理SSL注解会同时添加到server与location块?
问题:Ingress proxy_ssl_指令同时出现在server块和location块的原因
我的Ingress资源配置
nginx.ingress.kubernetes.io/proxy-ssl-name: <> nginx.ingress.kubernetes.io/proxy-ssl-secret: <> nginx.ingress.kubernetes.io/proxy-ssl-verify: "on" spec: rules: - http: paths: - backend: service: name: service port: number: 8443 path: /somePath pathType: Prefix
实际生成的nginx.conf内容
执行命令 cat nginx.conf | grep proxy_ssl_verify 后得到:
proxy_ssl_verify on; //server block proxy_ssl_verify_depth 1; proxy_ssl_verify on; // location block proxy_ssl_verify_depth 1;
原因分析
NGINX Ingress Controller的配置模板逻辑决定了这些proxy_ssl_*注解会同时被添加到server块和对应location块:
- server块的配置是作为当前server下所有location的默认规则,确保该server下其他未单独配置SSL代理参数的location,也能继承基础的SSL验证规则
- 对应Ingress的location块重复设置这些参数,是为了明确指定该路径下的后端通信必须遵循这些SSL验证规则,优先级高于server级别的默认配置,避免被全局配置或后续修改覆盖
内容的提问来源于stack exchange,提问作者Deepak Rawte
相关产品推荐
相关产品推荐

