Nginx returns 426



当我使用curl从Nginx服务器访问Istio网关NodePort时,我得到正确的响应,如下所示:

curl -v "http://52.66.195.124:30408/status/200"
*   Trying 52.66.195.124:30408...
* Connected to 52.66.195.124 (52.66.195.124) port 30408 (#0)
> GET /status/200 HTTP/1.1
> Host: 52.66.195.124:30408
> User-Agent: curl/7.76.1
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< server: istio-envoy
< date: Sat, 18 Sep 2021 04:33:35 GMT
< content-type: text/html; charset=utf-8
< access-control-allow-origin: *
< access-control-allow-credentials: true
< content-length: 0
< x-envoy-upstream-service-time: 2
< 
* Connection #0 to host 52.66.195.124 left intact

当我像下面这样通过Nginx代理配置时,我通过域获得HTTP ERROR 426

注意:我的域名是HTTPS - https://dashboard.example.com

server {
server_name dashboard.example.com;
location / {
proxy_pass       http://52.66.195.124:30408;
}
}
有谁能帮我理解这个问题吗?

HTTP 426错误意味着需要升级:

服务器拒绝使用当前协议执行请求,但可能在客户端升级到其他协议后愿意执行请求。

或其他信息:

HTTP426 Upgrade Required客户端错误响应代码表示服务器拒绝使用当前协议执行请求,但在客户端升级到不同的协议后可能愿意这样做。

在您的情况下,您需要检查您正在使用的HTTP协议的版本。似乎太低了。看看这条线。在这种情况下,您必须从1.0升级到1.1

你需要在NGINX配置中升级你的HTTP协议版本,如下所示:

这是一个旧的API,启用NGINX缓存的性能原因,但在这条路由的代理配置,它错过了一个共享配置proxy_http_version 1.1,默认使用HTTP 1.0的所有NGINX上游。

如果请求是HTTP 1.0, Envoy将返回HTTP 426

相关内容

  • 没有找到相关文章

最新更新