微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用代理协议的kubernetes nginx ingress最终破坏了标题

我尝试使用代理协议在google容器上设置Nginx ingress(nodeport),以便真正的ip可以转发到后端服务,但最终会出现断页.

2017/02/05 13:48:52 [error] 18#18: *2 broken header: "�����~��]H�k��m[|����I��iv.�{y��Z �嵦v�Ȭq���2Iu4P�z;�    o$�s����"���+�/�,�0̨̩����/" while reading PROXY protocol, client: 10.50.0.1, server: 0.0.0.0:443

如果没有代理协议,事情就会很好.根据https://blog.mythic-beasts.com/2016/05/09/proxy-protocol-nginx-broken-header/,这是由于协议v2被使用(二进制),但Nginx只能说v1.有什么建议吗?

解决方法:

GKE:使用kubernetes v1.6源认保留ip,可以在x-real-ip下的头文件中找到,而无需设置任何额外的Nginx配置.

AWS:可以通过将此添加到注释来保留源IP

apiVersion: v1
kind: Service
Metadata:
  name: nginx-ingress
  namespace: nginx-ingress
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: '*'
  labels:
    app: nginx-ingress

查看此链接
https://github.com/kubernetes/ingress/tree/master/examples/aws/nginx

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐