我正在使用kubernetes nginx-ingress设置反向代理,但我不知道如何在配置中添加nginx参数,具体为:proxy_ssl_server_name。如何在yaml配置中设置ingress参数?
我已经尝试过使用server-snippet annotation,但它似乎没有将参数添加到集群pod中的nginx.conf文件中。
下面是反向代理的当前代码:
kind: Service
apiVersion: v1
metadata:
name: formstack
namespace: serves
spec:
type: ExternalName
externalName: fluidsignal.formstack.com
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: formstack
namespace: serves
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/upstream-vhost: "fluidsignal.formstack.com"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
tls:
- hosts:
- fluidattacks.com
secretName: fluidattacks-cert
rules:
- host: fluidattacks.com
http:
paths:
- backend:
serviceName: formstack
servicePort: 443
path: /forms(.*)
字符串
在设置代理后,我从Nginx得到一个502 Bad Gateway
错误。在查看pods日志后,我看到我得到以下openssl错误:SSL: error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:SSL alert number 40
,这就是为什么我想添加我之前提到的参数。
2条答案
按热度按时间a8jjtwal1#
我刚刚发现我确实使用了正确的注解:
nginx.ingress.kubernetes.io/server-snippet
,但我需要添加一个额外的参数:
proxy_ssl_name
添加以下代码修复了问题:
字符串
现在一切都正常了:D
zdwk9cvp2#
第一个答案几乎是正确的,但应该使用
configuration-snippet
而不是server-snippet
。第一个(
server-snippet
)将在整个服务器级别(整个ingress服务器)上添加配置,最后一个(configuration-snippet
)将在当前ingress对象相关的nginxlocation
内部应用字符串