溫馨提示×

溫馨提示×

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

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

如何在Nginx中使用proxy_redirect

發(fā)布時(shí)間:2021-03-25 17:23:03 來源:億速云 閱讀:408 作者:Leah 欄目:服務(wù)器

如何在Nginx中使用proxy_redirect?很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

server {
 listen 80;
 server_name www.boke.com;
 location / {
  proxy_pass http://192.168.1.154:8080;
  proxy_redirect off;
 }
 }

此時(shí)我們通過curl查看結(jié)果得出

[root@localhost nginx]# curl -I http://www.boke.com/wuman
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 24 Dec 2015 12:02:00 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: keep-alive
Location: http://192.168.1.154:8080/wuman/

這里location為帶有后端服務(wù)器實(shí)際地址跟端口的響應(yīng)頭信息這樣在實(shí)際線上是不允許的所以這里我們打算通過proxy_redirect將被代理服務(wù)器的響應(yīng)頭中的location字段進(jìn)行修改后返回給客戶端

server {
 listen 80;
 server_name www.boke.com;
 location / {
  proxy_pass http://192.168.1.154:8080;
  proxy_redirect http://192.168.1.154:8080/wuman/ http://www.boke.com/wuman/;
 }

server {
 listen 80;
 server_name www.boke.com;
 location / {
  proxy_pass http://192.168.1.154:8080;
  proxy_redirect ~^http://192.168.1.154:8080(.*) http://www.boke.com$1;
 }

則curl查看返回結(jié)果

[root@localhost nginx]# curl -I http://www.boke.com/wuman
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 24 Dec 2015 12:08:34 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: keep-alive
Location: http://www.boke.com/wuman/

此時(shí)查看location已經(jīng)變成了我們想要的結(jié)果了。 此時(shí)通過replacement 301重定向到了我們新的頁面

出處:

proxy_redirect

語法:proxy_redirect [ default|off|redirect replacement ] 

默認(rèn)值:proxy_redirect default 

使用字段:http, server, location 

如果需要修改從被代理服務(wù)器傳來的應(yīng)答頭中的"Location"和"Refresh"字段,可以用這個(gè)指令設(shè)置。

假設(shè)被代理服務(wù)器返回Location字段為: http://localhost:8000/two/some/uri/

這個(gè)指令: 

proxy_redirect http://localhost:8000/two/ http://frontend/one/;

將Location字段重寫為http://frontend/one/some/uri/。

在代替的字段中可以不寫服務(wù)器名:

proxy_redirect http://localhost:8000/two/ /;

這樣就使用服務(wù)器的基本名稱和端口,即使它來自非80端口。

如果使用“default”參數(shù),將根據(jù)location和proxy_pass參數(shù)的設(shè)置來決定。

例如下列兩個(gè)配置等效:

location / one / {
 proxy_pass http: //upstream:port/two/; 
 proxy_redirect default;
}
location / one / {
 proxy_pass http: //upstream:port/two/; 
 proxy_redirect http: //upstream:port/two/ /one/;
}

在指令中可以使用一些變量:

proxy_redirect http://localhost:8000/ http://$host:$server_port/;

這個(gè)指令有時(shí)可以重復(fù):

proxy_redirect default;
proxy_redirect http://localhost:8000//; proxy_redirect ; /;

參數(shù)off將在這個(gè)字段中禁止所有的proxy_redirect指令:

proxy_redirect off;
proxy_redirect default;
proxy_redirect http://localhost:8000/ /; proxy_redirect ; /;

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(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)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI