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

nginx反向代理后無限重定向的問題解決方法

 更新時間:2023年08月10日 09:16:47   作者:LYX6666  
這篇文章主要為大家介紹了nginx反向代理后無限重定向的問題解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

先說說奇葩的需求:https轉(zhuǎn)其他網(wǎng)站的http

在項目里用iframe內(nèi)嵌其他網(wǎng)站,這個“其他網(wǎng)站”不是我們開發(fā)的,并且是http,
但瀏覽器會默認(rèn)阻止從https網(wǎng)站向http地址發(fā)起請求

因此初步的解決方案是:用我們自己的服務(wù)器nginx轉(zhuǎn)發(fā)一次,雖然服務(wù)器到“其他網(wǎng)站”的傳輸還是明文,但至少可以做到甩鍋(至少用戶到我們的服務(wù)器的傳輸是SSL......)

然后這個“其他網(wǎng)站”就出現(xiàn)了無限重定向問題。

另外,根據(jù)以往的經(jīng)歷,在給WordPress加https的時候,也可能會遇到無限重定向的問題。

原因

本質(zhì)上是因為:“其他網(wǎng)站”的服務(wù)程序具有請求頭校驗。

通常來說,nginx轉(zhuǎn)發(fā)的請求,是帶有原始請求頭信息的請求。
比如:

nginx服務(wù)器的地址是https://server1.domin:1111

生產(chǎn)服務(wù)器的地址是http://server2.domin:2222

瀏覽器向https://server1.domin:1111發(fā)起請求

此時,雖然nginx把請求代理到了http://server2.domin:2222但由于一系列的參數(shù)設(shè)置,http請求頭中的信息還是https://server1.domin:1111

這種情況下,如果“其他網(wǎng)站”的服務(wù)程序(Apache或nginx)中加入了請求頭校驗,也就是說,如果端口不是2222,就重定向;

如果地址不是server2.domin,就重定向。

而我們的nginx已經(jīng)把請求頭改成了原始信息,自然不能通過他們的驗證,所以就會被強制重定向了。

如圖,它把我的38004端口的請求重定向到了默認(rèn)的443,說明對方服務(wù)器有地址校驗,而且重定向只改變了端口。

而如果我的nginx恰好也用的443,就會無限重定向了。

解決

我們先來看看通常使用的nginx的重寫參數(shù):

server {
    listen 38002 ssl;
    server_name server1.domin;
    ssl_certificate server1.domin.cer;
    ssl_certificate_key server1.domin.key;
    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real_IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr:$remote_port;
        proxy_pass http://server2.domin:2222/;
    }
}

這種情況下,就是直接在代理的請求中,加入原始請求頭信息

那么我們怎么改呢?

我們要讓對方服務(wù)器認(rèn)為,nginx發(fā)過去的請求不是代理過去的,而是直接發(fā)過去的。

再換種方式說,此時nginx的作用不再是反向代理,而是正向代理,目的是隱藏真正的請求信息,讓對方服

務(wù)器認(rèn)為就是nginx直接請求的對方服務(wù)器。

所以我們要把ip、端口等等參數(shù)直接寫死。

server {
    listen 443 ssl;
    server_name server1.domin;
    ssl_certificate server1.domin.cer;
    ssl_certificate_key server1.domin.key;
    location / {
        proxy_set_header Host server2.domin; // 對方服務(wù)器的域名
        proxy_set_header X-Real-IP 123.123.123.123; // 對方服務(wù)器的真實地址,從控制臺中找到
        proxy_set_header X-Forwarded-For $123.123.123.123:80;
        proxy_set_header X-Forwarded-Host server2.domin; // 對方服務(wù)器的域名
        proxy_set_header X-Forwarded-Port 80; // 對方服務(wù)器的端口
        proxy_pass http://server2.domin:2222/;
    }
}

于是代理過程就變成了這樣:

總結(jié)

在我們不得不用nginx代理,并且無法讓對方配合的情況下

只要把http中的請求頭信息替換為對方網(wǎng)站的請求頭信息(而不是使用原始信息)

就可以通過對方服務(wù)器的host驗證了。

時間倉促,有些地方可能說的不準(zhǔn),但目前能用,如有錯誤歡迎指正。

以上就是nginx反向代理后無限重定向的問題解決方法的詳細(xì)內(nèi)容,更多關(guān)于nginx反向代理重定向的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Nginx之rewrite實現(xiàn)URL重寫方式

    Nginx之rewrite實現(xiàn)URL重寫方式

    文章介紹了Nginx的rewrite模塊,包括其重要性、相關(guān)指令(如set、if、break、return、rewrite)的使用方法和作用域,并舉例說明了這些指令的實際應(yīng)用場景,如域名重定向和防盜鏈處理
    2025-03-03
  • nginx臨時搭建rtmp服務(wù)器的方法實現(xiàn)

    nginx臨時搭建rtmp服務(wù)器的方法實現(xiàn)

    nginx是一款優(yōu)秀的反向代理工具,通過Nginx自帶的rtmp模塊,也可以實現(xiàn)rtmp服務(wù)器的搭建,本文主要介紹了nginx臨時搭建rtmp服務(wù)器,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • Nginx 中的Rewrite 使用示例詳解

    Nginx 中的Rewrite 使用示例詳解

    Nginx的rewrite模塊提供了強大的URL重寫和重定向功能,可以用于實現(xiàn)各種復(fù)雜的 URL 處理需求,本文詳細(xì)介紹了rewrite的命令、語法、含義、環(huán)境和示例,希望能夠幫助用戶更好地理解和使用Nginx的 rewrite功能,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • Nginx鑒權(quán)、限流問題

    Nginx鑒權(quán)、限流問題

    這篇文章主要介紹了Nginx鑒權(quán)、限流問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • nginx帶寬限制?limit_rate?limit_rate_after指令

    nginx帶寬限制?limit_rate?limit_rate_after指令

    這篇文章主要為大家介紹了nginx帶寬限制?limit_rate?limit_rate_after指令詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 詳解Nginx反向代理和負(fù)載均衡部署指南

    詳解Nginx反向代理和負(fù)載均衡部署指南

    本篇文章主要介紹了Nginx反向代理和負(fù)載均衡部署指南 ,具有一定的參考價值,對學(xué)習(xí)Nginx的同學(xué)有一定的幫助,感興趣的同學(xué)可以了解一下。
    2016-12-12
  • win10上安裝nginx的方法步驟

    win10上安裝nginx的方法步驟

    這篇文章主要介紹了win10上安裝nginx的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 詳解Nginx反向代理跨域基本配置與常見誤區(qū)

    詳解Nginx反向代理跨域基本配置與常見誤區(qū)

    這篇文章主要介紹了詳解Nginx反向代理跨域基本配置與常見誤區(qū),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • nginx常用操作命令詳解

    nginx常用操作命令詳解

    這篇文章主要介紹了nginx常用操作命令,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Nginx由于反向代理導(dǎo)致502錯誤的原因與解決

    Nginx由于反向代理導(dǎo)致502錯誤的原因與解決

    這篇文章主要為大家詳細(xì)介紹了Nginx由于反向代理導(dǎo)致502錯誤的原因和相關(guān)的解決方法,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下
    2025-04-04

最新評論

美姑县| 阜康市| 玉田县| 穆棱市| 启东市| 玉屏| 宜丰县| 会泽县| 汾阳市| 华坪县| 成武县| 怀安县| 修水县| 镇坪县| 阳原县| 固安县| 南岸区| 甘谷县| 长岭县| 新乡市| 沧州市| 微博| 闵行区| 枣阳市| 汝南县| 乌鲁木齐市| 卢龙县| 海晏县| 犍为县| 来宾市| 化德县| 策勒县| 中牟县| 元氏县| 邵东县| 高唐县| 宁蒗| 隆昌县| 鄂托克旗| 上饶市| 康乐县|