Nginx使用upstream后端接口報?400
upstream模塊介紹
Nginx的負載均衡功能依賴于ngx_http_upsteam_module模塊,所支持的代理方式包括proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, memcached_pass和grpc_pass。
gx_http_upstream_module模塊允許Nginx定義一組或多組服務(wù)組,使用的可以通過proxy_pass代理方式把網(wǎng)站的請求發(fā)送到事先定義好的對應(yīng)upstream組的名字上。upstream模塊可以實現(xiàn)負載均衡,而且在一個節(jié)點故障的時候,配置了upstream時可以自動切換到正常工作的節(jié)點。
增加Nginx配置后:
upstream data_server {
server 192.168.1.86:20001;
}原因:
- 直連后端(如 http://192.168.1.86:18295/xxx),瀏覽器或 Postman 自動將 Host 設(shè)為 192.168.1.86:18295,后端能識別。
- 走 Nginx,如果不做特殊配置,Nginx 默認將 Host 設(shè)為 upstream 的名字(即 data_server)。后端收到 Host: data_server,發(fā)現(xiàn)這不是一個合法的域名或 IP,直接報錯 400。
解決方法:
在 location 中強制傳遞真實的 Host 給后端。
location /data/ {
# 添加這一行,將客戶端請求的原始 Host 傳遞給后端
proxy_set_header Host $host;
# 或者,如果后端服務(wù)監(jiān)聽的是特定端口且依賴端口,可以使用:
# proxy_set_header Host $host:$server_port;
# ... 其他配置
proxy_pass http://data_server/ ;
}到此這篇關(guān)于Nginx使用upstream后端接口報 400的文章就介紹到這了,更多相關(guān)Nginx使用upstream報 400內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx中mime.types配置文件類型響應(yīng)的實現(xiàn)步驟
本文主要介紹了Nginx中mime.types配置文件類型響應(yīng)的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2026-03-03
PHP(FastCGI)在Nginx的alias下出現(xiàn)404錯誤的解決方法
這篇文章主要介紹了PHP(FastCGI)在Nginx的alias下出現(xiàn)404錯誤的解決方法,涉及nginx平臺的相關(guān)配置技巧,需要的朋友可以參考下2016-05-05
Nginx設(shè)置HttpOnly Secure SameSite參數(shù)解決Cookie信息丟失
本文主要介紹了Nginx中Cookie缺少SameSite屬性的問題,并詳細解釋了HttpOnly、Secure和SameSite屬性的作用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11
Nginx轉(zhuǎn)發(fā)丟失cookie表現(xiàn)形式及解決方案
本文主要介紹了Nginx轉(zhuǎn)發(fā)丟失cookie表現(xiàn)形式及解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01

