激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - Nginx - 解決Nginx 配置 proxy_pass 后 返回404問題

解決Nginx 配置 proxy_pass 后 返回404問題

2021-02-28 23:19自由早晚亂余生 Nginx

這篇文章主要介紹了Nginx 配置 proxy_pass 后 返回404問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

 

一、 Nginx 配置 proxy_pass 后 返回404問題 故障解決和定位

 

 

1.1、 問題

在一次生產(chǎn)涉及多次轉發(fā)的配置中, 需求是下面的圖: 解決Nginx 配置 proxy_pass 后 返回404問題
在配置好了 proxy_pass 之后,請求 www.djx.com 直接返回 404,沒有什么其他的異常。 但是我們直接請求后端 www.baidu.com 是正常響應的。這就很怪異的。 看日志請求也是轉發(fā)到了 www.baidu.com 的。但是請求響應就是404.

 

1.2、 尋找問題原因

我們的默認的 Nginx的 proxy_set_header 配置是

?
1
proxy_set_header Host $host;
  • 服務端: 192.168.2.189
  • 服務端1:192.168.1.180 Nginx1
  • 服務端2:192.168.1.90 Nginx2

解決Nginx 配置 proxy_pass 后 返回404問題

當我們是這個的設置的時候,當?shù)谝粚?Nginx(Nginx1)代理后,我們請求的域名是 www.djx.com ,從這個請求的 header 獲取到的 host 的值是 www.djx.com, 我們通過 配置

?
1
proxy_set_header Host $host;

將 host 的值設置為轉發(fā) 的Host 值,但是請求的域名是 www.baidu.com , 也就是 header 里面的是 host 字段是 www.djx.com , 請求的域名和 header 里面的 Host 的不一致導致的。

解決Nginx 配置 proxy_pass 后 返回404問題

 

1.3、 proxy_set_header 官方信息

官方文檔

默認設置為

?
1
2
proxy_set_header Host $proxy_host;
proxy_set_header Connection close;

1.4、 解決辦法

Host 的值設置為 $proxy_host, $proxy_host 的值詳解見下面擴展。

?
1
proxy_set_header Host $proxy_host;

 

二、擴展 常用的配置

 

 

1. $proxy_host

?
1
2
3
proxy_set_header Host  $proxy_host;
# 默認配置
# 顧名思義,請求頭設置的為代理后的域名。

示例1:
當我們配置了 upstream, 那么$proxy_host 的值就是 upstream 的名字

?
1
2
3
upstream open-hz8443{
server 10.60.6.184:8000 max_fails=1 fail_timeout=3s weight=10;
}

那么這里 $proxy_host 的值就是 open-hz8443。

示例2:
當我們沒有配置 upstream, 那么 $proxy_host 的值就是 proxy_pass 后面的地址ip和端口. 10.60.6.184:8000. 如果是 proxy_pass http://www.djx.com:8000; 那么 $proxy_host 的值就是 www.djx.com:8000.

?
1
2
3
4
5
6
7
8
9
location ^~ /wss/v1
{
 proxy_pass http://10.60.6.184:8000;
 proxy_set_header Host $proxy_host;
 proxy_set_header Connection "upgrade";
 proxy_set_header Upgrade $http_upgrade;
 tcp_nodelay on;
 
}

 

2. $host

?
1
2
proxy_set_header Host  $host;
# 當字段不在請求頭中就無法傳遞了,在這種情況下,可通過設置Host變量,將需傳遞值賦給Host變量

當請求 Header 里 Host 無值的時候,直接拿 server_name 的值進行填充。

當請求 Header 里 Host 的值的時候,就直接拿 請求 Header 里面的 Host 的值。

3. $host:$proxy_port

?
1
2
3
4
5
6
7
8
proxy_set_header Host  $host:$proxy_port;
 
# 服務器名稱和端口一起通過代理服務器傳遞,相對上一項,多了一個 $proxy_port,這個 $proxy_port 是proxy_pass 里面的那個端口,如果沒有端口,像80 和 443 的話。也是會使用 80 /443 填充,
 
示例:
proxy_pass http://www.baidu.com;
 
$host:$proxy_port = 百度ip:80

 

4. $http_host

?
1
2
proxy_set_header Host  $http_host;
# 一個不會變化的“Host”頭請求字段可通過如下方式被傳遞:

當請求 Header 里 Host 無值的時候,直接拿 server_name 的值進行填充。并加上端口。如果是 80/443 則不加。 其實就是去 請求url 里面的值。 http://server:port/v1

當請求 Header 里 Host 的值的時候,就直接拿 請求 Header 里面的 Host 的值。

示例

  • 服務端: 192.168.2.189
  • 服務端1:192.168.1.180 Nginx1
  • 服務端2:192.168.1.90 Nginx2

解決Nginx 配置 proxy_pass 后 返回404問題

基礎配置
192.168.1.180 Nginx1

?
1
2
3
4
5
6
7
8
9
server{
 listen 80;
 server_name www.djx.com;
 
 location / {
  proxy_pass http://www.baidu.com/;
 }
 
}

192.168.1.190 Nginx2

?
1
2
3
4
5
6
7
8
9
server{
 listen 80;
 server_name www.baidu.com;
 
 location / {
  proxy_pass http://192.168.1.80:8080/;
 }
 
}

** 使用基礎配置 **
也就是

?
1
proxy_set_header Host  $proxy_host;

那么到 http://192.168.1.80:8080/ header 的值為 www.baidu.com.

** 使用 $host **
也就是

?
1
proxy_set_header Host  $host;

參考文章:https://cloud.tencent.com/developer/article/1557504

到此這篇關于Nginx 配置 proxy_pass 后 返回404問題的文章就介紹到這了,更多相關Nginx 配置 proxy_pass 內容請搜索服務器之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/operationhome/p/14232793.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 成人性视频欧美一区二区三区 | 欧美日韩国产成人在线观看 | 中国av一级片 | 视频一区二区三区在线播放 | 欧美精品一区二区三区在线 | 亚洲精品久久久久久久久久 | 亚洲无马在线观看 | 欧美性生交zzzzzxxxxx | 日本黄肉网站在线观看 | 欧美一级在线免费 | 久久精品一级 | 一本色道久久综合狠狠躁篇适合什么人看 | 亚洲国产精品高潮呻吟久久 | 成人免费自拍视频 | 亚洲午夜一区二区三区 | 久久亚洲线观看视频 | 成人精品一区二区三区中文字幕 | 91美女视频在线 | 黄色成人短视频 | 黄色毛片观看 | 久久久久一本一区二区青青蜜月 | 水卜樱一区二区av | 亚洲国产精品一区二区精品 | 中文字幕在线资源 | 一级性生活免费视频 | 精品一区二区三区免费毛片 | 免费欧美一级视频 | 欧美国产第一页 | 日本中文字幕网址 | 久久9999久久 | 一级电影免费在线观看 | av在线官网 | 免费在线中文字幕 | 日本一区二区精品视频 | 午夜a狂野欧美一区二区 | 欧美日韩亚洲国产精品 | 成人午夜久久 | 欧美日韩观看 | 成人男女免费视频 | 久草网在线 | 久久超 |