【问题标题】:Reverse proxy a site with SNI support using kubernetes nginx-ingress使用 kubernetes nginx-ingress 反向代理具有 SNI 支持的站点
【发布时间】:2019-10-02 16:20:53
【问题描述】:

我正在使用kubernetes nginx-ingress设置反向代理,但是不知道如何在配置中添加nginx参数,具体为:proxy_ssl_server_name。如何在 yaml 配置中设置入口参数?

我已经尝试使用server-snippet 注解,但似乎它没有将参数添加到集群 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,这就是为什么我要添加我之前提到的参数。

【问题讨论】:

    标签: ssl nginx kubernetes nginx-ingress


    【解决方案1】:

    我刚刚发现我确实使用了正确的注释:nginx.ingress.kubernetes.io/server-snippet

    但我需要添加一个额外的参数:proxy_ssl_name

    添加以下代码解决了问题:

    nginx.ingress.kubernetes.io/server-snippet: |
      proxy_ssl_name fluidsignal.formstack.com;
      proxy_ssl_server_name on;
    

    现在似乎一切正常:D

    【讨论】:

    • 非常感谢这个解决方案
    猜你喜欢
    • 2019-07-02
    • 1970-01-01
    • 2018-03-12
    • 2019-10-11
    • 2020-05-16
    • 1970-01-01
    • 2022-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多