當我使用curl從Nginx服務器訪問Istio網關NodePort時,我得到了正確的回應,如下:
curl -v "http://52.66.195.124:30408/status/200"_span>
* Trying 52.66.195.124:30408.
* 連接 到 52.66。 195.124 (52.66.195.124) port 30408 (#0)
> GET /status/200 HTTP/1.1
> 主機: 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
< 日期。 Sat, 18 Sep 2021 04:33:35 GMT
< 內容型別: text/html; charset=utf-8
< access-control-allow-origin:/span> *
< access-control-allow-credentials: true
< Content-length: 0
< x-envoy-upstream-service-time: 2
</span>
* 連接 #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; {
}
有誰能幫助我了解這個問題嗎?
uj5u.com熱心網友回復:
HTTP 426錯誤意味著需要升級:
服務器拒絕使用當前的協議執行請求,但在客戶端升級到不同的協議后可能愿意執行請求。
或者其他資訊:
HTTP
426 Upgrade Required客戶端錯誤回應代碼表明,服務器拒絕使用當前協議執行請求,但在客戶端升級到不同的協議后可能愿意這樣做。
在你的情況下,你需要檢查你所使用的HTTP協議的版本。它似乎太低了。看看這個主題。在這種情況下,你必須從1.0升級到1.1。
你需要在NGINX配置中升級你的HTTP協議版本,就像這樣:
這個路由是針對一個傳統的API,由于性能原因,它啟用了NGINX快取,但是在這個路由的代理配置中,它漏掉了一個共享配置proxy_http_version 1.1,它默認對所有NGINX上游使用HTTP 1.0。
而Envoy將回傳HTTP 426,如果請求是HTTP 1.0。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/329641.html
標籤:
