溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

nginx的配置怎么轉(zhuǎn)發(fā)到其他網(wǎng)站

發(fā)布時間:2022-08-26 15:46:58 來源:億速云 閱讀:385 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下nginx的配置怎么轉(zhuǎn)發(fā)到其他網(wǎng)站的相關(guān)知識點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

需求

有這樣一個需求:項目中跳轉(zhuǎn)到某個地址,但這個地址不想暴露給用戶。

因此我們想到要做一層代理,通過項目某個路徑直接用ngnix代理到這個地址。

查詢相關(guān)文檔后,發(fā)現(xiàn)方案如下:

用return 302

location /myBaidu {
  return 302 http://baidu.com;
}
  • 這種方案會直接跳轉(zhuǎn)到baidu,并且會改變域名,相當(dāng)于直接location.href = 'baidu.com' ,顯然并不適合我們的需求。

  • 我們想要的效果是代理到百度,但是瀏覽器的url框內(nèi)還是/sparkMonitor,那么就用proxy_pass

用proxy_pass

假設(shè)我們的網(wǎng)站域名為 http://myorigin.com/

location /myBaidu {
  proxy_pass http://www.baidu.com/;
}

這樣配置后就可以由http://myorigin.com/myBaidu直接訪問到百度頁面,如下圖

nginx的配置怎么轉(zhuǎn)發(fā)到其他網(wǎng)站

關(guān)于proxy_pass使用的語法,與/有關(guān)

當(dāng)路徑加上/:相對路徑,此時相當(dāng)于代理到http://www.baidu.com/

location /myBaidu {
  proxy_pass http://www.baidu.com/;
}

如果訪問http://myorigin.com/myBaidu/abc就相當(dāng)于訪問http://www.baidu.com/abc

當(dāng)路徑不加/:絕對路徑,,此時相當(dāng)于代理到http://www.baidu.com/myBaidu

location /myBaidu {
  proxy_pass http://www.baidu.com;
}

如果訪問http://myorigin.com/myBaidu/abc就相當(dāng)于訪問http://www.baidu.com/myBaidu/abc

當(dāng)路徑加上/xxx/

location /myBaidu {
  proxy_pass http://www.baidu.com/xxx/;
}
  • 如果訪問http://myorigin.com/myBaidu/abc就相當(dāng)于訪問http://www.baidu.com/xxx/abc

當(dāng)路徑加上/xxx

location /myBaidu {
  proxy_pass http://www.baidu.com/xxx;
}
  • 如果訪問http://myorigin.com/myBaidu/abc就相當(dāng)于訪問http://www.baidu.com/xxxabc

其他問題

  • 用proxy_pass的方案反向代理到百度頁面,沒有任何問題。

  • 但是我們項目中是要求跳轉(zhuǎn)到某個內(nèi)網(wǎng)域名,而且此域名和http://myorigin.com/并沒有互通,因此配置代理時,需要配置成ip地址,然后代理成功跳轉(zhuǎn)

但此時打開代理的頁面顯示沒有樣式,查看控制臺發(fā)現(xiàn)了報錯如下:

nginx的配置怎么轉(zhuǎn)發(fā)到其他網(wǎng)站

點(diǎn)進(jìn)去查看錯誤如下圖

nginx的配置怎么轉(zhuǎn)發(fā)到其他網(wǎng)站

  • 由此,問題就很明顯了,代理的網(wǎng)站用了根目錄絕對路徑去找到/static下的jquery文件,因此會直接在我們項目的域名下找http://myorigin.com/static文件,這樣是怎么也無法找到代理項目的/static文件,因此jquery找不到報錯,頁面樣式失效

  • 而且不只是/static文件,可能還有其他文件也找不到,而且還有可能路徑與路由沖突,引發(fā)問題

  • 因此,我們可以得出結(jié)論,前端項目的nginx的配置轉(zhuǎn)發(fā)到其他網(wǎng)站需要慎重,不是所有網(wǎng)站都可以走前端代理的,需要具體情況具體分析

以上就是“nginx的配置怎么轉(zhuǎn)發(fā)到其他網(wǎng)站”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI