nginx代理ambassador出现426错误

现在ambassador文档啃得差不多了。进入实战阶段。

一开始,就偶遇426错误。

网络结构大致如下:

浏览器访问nginx,

nginx代理到k8s内的ambassador,

ambassador代理到k8s内的service。

别问为什么这么复杂,

还有更复杂的。

比如,ambassador代理到k8s内的nginx,

nginx再代理到k8s集群外的服务。

多一层代理,多一层灵活和控制,

看场景和心态啦。

最后,解决靠了百度。

URL:

https://blog.csdn.net/pushme_pli/article/details/88411373

 

426(https://httpstatuses.com/426)表示服务器拒绝浏览器使用当前协议发送的请求。

懵逼了,

原来这个protocol指的是HTTP的version,而罪魁祸首是nginx。具体来讲是:

  • browser使用HTTP 1.1发送request到nginx
  • nginx使用HTTP 1.0(https://serverfault.com/questions/442960/nginx-ignoring-clients-http-1-0-request-and-respond-by-http-1-1)把request重定向到ambassador(Envoy)
  • Envoy受不了HTTP 1.0,要求升级为1.1,所以抛出426

那好办了,让nginx重定向时使用HTTP1.1,在nginx的router rule中加入:

proxy_http_version 1.1;
proxy_set_header Connection "";

 

转载于:https://www.cnblogs.com/aguncn/p/11577866.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值