最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nginx配置proxy_pass后返回404問題以及Nginx host相關(guān)變量的說明

 更新時(shí)間:2024年01月25日 15:37:32   作者:eaglecolin  
這篇文章主要介紹了nginx配置proxy_pass后返回404問題以及Nginx host相關(guān)變量的說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

預(yù)備知識(shí)

這里我們先了解Nginx中host相關(guān)的變量($host/$http_host/$proxy_host) ,有助于我們理解和解決 proxy_pass 404問題。

  • $host request 請(qǐng)求過來的host,不管是域名還是IP,不管是否為80/443端口,值都為域名或者IP,不帶端口
  • $http_host request 請(qǐng)求過來的host,不管是域名還是IP,如果是非80/443端口,值都為域名或者IP加帶端口,如果是非80/443端口,值都為域名或者IP
  • $proxy_host 內(nèi)部進(jìn)行proxy配置轉(zhuǎn)發(fā)的時(shí)候默認(rèn)配置的Host為 $proxy_host, 值為配置的 proxy_pass的值的 域名或者IP部分

比如:

location /demo/ {
    proxy_pass http://ops.colinspace.com/;
}

則 proxy_host為 ops.colinspace.com;

如果配置如下:

location /demo/ {
    proxy_pass http://192.168.3.108:8090/;
}

則 proxy_host為 192.168.3.108:8090;

然后我們?cè)僬f proxy_pass抓發(fā)的時(shí)候默認(rèn)的Host為 $proxy_host

在nginx官網(wǎng)有個(gè)解釋:

By default, NGINX redefines two header fields in proxied requests, “Host” and “Connection”, and eliminates the header fields whose values are empty strings.

“Host” is set to the $proxy_host variable, and “Connection” is set to close.

來源參考: https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/

問題分析和修正

其實(shí)通過上面的預(yù)備知識(shí),現(xiàn)在我們很容易猜到問題所在。

對(duì),問題的點(diǎn)就在于 proxy_pass 轉(zhuǎn)發(fā)的時(shí)候 Host 變量的值不對(duì)

對(duì)問題進(jìn)行問題

1、我們可以在access_log 的輸出中打印分別打印出來這三個(gè)變量的值,然后進(jìn)行請(qǐng)求觀察分析日志,

2、對(duì)比分析不同的域名下關(guān)于 proxy相關(guān)的配置,發(fā)現(xiàn)出問題的域名相比沒有問題的域名引用了一個(gè) proxy.conf 的公共配置,這個(gè)里面默認(rèn)設(shè)置了

proxy_set_header Host $host

但是proxy轉(zhuǎn)發(fā)的時(shí)候這個(gè)值應(yīng)該為 $proxy_host 才對(duì), 所以要么取消 對(duì) proxy.conf 公共引用(不建議,因?yàn)闅v史添加肯定有原因);

要么采用如下方案在對(duì)應(yīng)的location中進(jìn)行添加

location /demo/ {
    proxy_set_host Host $proxy_host;
    # 或者也可以直接指定為轉(zhuǎn)發(fā)的域名
    # proxy_set_host Host 'ops.colinspace.com'; 
    proxy_pass http://ops.colinspace.com/;
} 

然后reload,再次請(qǐng)求驗(yàn)證,404 問題修正

問題擴(kuò)展

  • 為什么請(qǐng)求的時(shí)候Header中需要帶一個(gè)Host配置項(xiàng)呢?
  • 你有沒有注意到瀏覽器請(qǐng)求的時(shí)候,Header中默認(rèn)會(huì)自動(dòng)幫忙我們添加這樣的Host配置項(xiàng)呢,或者有時(shí)候我們使用curl進(jìn)行接口驗(yàn)證的時(shí)候也需要指定Host才可以

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

定安县| 丰宁| 罗定市| 美姑县| 那坡县| 红桥区| 深泽县| 独山县| 正蓝旗| 凉城县| 桂林市| 岚皋县| 裕民县| 康平县| 钦州市| 饶平县| 遂宁市| 宣威市| 丰城市| 诏安县| 运城市| 隆林| 静宁县| 镇沅| 延安市| 元阳县| 汝州市| 永定县| 南木林县| 富川| 宁明县| 五大连池市| 班玛县| 道真| 衡阳县| 大田县| 旅游| 田东县| 华坪县| 外汇| 桐梓县|