gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

Nginx的正向代理與反向代理詳解

正向代理和反向代理的概念

代理服務(wù)(Proxy),通常也稱為正向代理服務(wù)。

如果把局域網(wǎng)外Internet想象成一個(gè)巨大的資源庫(kù),那么資源就分布到了Internet的各個(gè)點(diǎn)上,局域網(wǎng)內(nèi)的客戶端要訪問(wèn)這個(gè)庫(kù)里的資源就必須統(tǒng)一通過(guò)代理服務(wù)器才能對(duì)各個(gè)站點(diǎn)進(jìn)行訪問(wèn)。

局域網(wǎng)內(nèi)的機(jī)器借助代理服務(wù)訪問(wèn)局域網(wǎng)外的網(wǎng)站, 這主要是為了增加局域網(wǎng)內(nèi)部網(wǎng)絡(luò)的安全性,使得網(wǎng)外的威脅因素不容易影響到網(wǎng)內(nèi),這里代理服務(wù)器起到了一部分防火墻的功能。同時(shí),利用代理服務(wù)器也可以對(duì)局域網(wǎng)外的訪問(wèn)進(jìn)行必要的監(jiān)控和管理。正向代理服務(wù)器不支持外部對(duì)內(nèi)部網(wǎng)絡(luò)的訪問(wèn)請(qǐng)求。

與正向代理服務(wù)相反,如果局域網(wǎng)向Internet提供資源,讓Internet上的其他用戶可以訪問(wèn)局域網(wǎng)內(nèi)的資源,也可以設(shè)置一個(gè)代理服務(wù)器,它提供的服務(wù)就叫做反向代理(Reverse Proxy)服務(wù)??梢钥吹?,反向代理服務(wù)與代理服務(wù)在功能邏輯上剛好是相反的。

正向代理服務(wù)器與反向代理服務(wù)器的概念很簡(jiǎn)單,歸納起來(lái)就是,正向代理服務(wù)器用來(lái)讓局域網(wǎng)客戶機(jī)接入外網(wǎng)以訪問(wèn)外網(wǎng)資源,反向代理服務(wù)器用來(lái)讓外網(wǎng)的客戶端接入局域網(wǎng)中的站點(diǎn)以訪問(wèn)站點(diǎn)中的資源。理解這兩個(gè)概念的關(guān)鍵是要明白我們當(dāng)前的角色和目的是什么,在正向代理服務(wù)器中,我們的角色是客戶端,目的是要訪問(wèn)外網(wǎng)的資源;在反向代理服務(wù)器中,我們的角色是站點(diǎn),目的是把站點(diǎn)的資源發(fā)布出去讓其他客戶端能夠訪問(wèn)。

知道了這兩個(gè)概念,就可以學(xué)習(xí)如何讓Nginx服務(wù)器來(lái)提供代理和反向代理服務(wù)器了。

Nginx的正向代理服務(wù) 

Nginx服務(wù)器正向代理服務(wù)的配置的3個(gè)指令

在實(shí)際應(yīng)用中,使用Nginx服務(wù)器代理服務(wù)功能的情況相對(duì)少一些,Nginx代理服務(wù)本向也相對(duì)簡(jiǎn)單,涉及的主要指令不多。這些指令原則上可以出現(xiàn)在Nginx配置文件的http塊、server塊或者location塊中,但一般是在搭建的Nginx服務(wù)器中單獨(dú)配置一個(gè)server塊用來(lái)設(shè)置代理服務(wù)。

1.resolver指令

該指令用于指定DNS服務(wù)器的IP地址。DNS服務(wù)器的主要工作是進(jìn)行域名的解析,將域名映射為對(duì)應(yīng)的IP地址。該指令的語(yǔ)法結(jié)構(gòu)為:

resolver address ... [valid=time];

address,DNS服務(wù)器的IP地址。如果不指定商品號(hào),默認(rèn)使用53端口。

time,設(shè)置數(shù)據(jù)包在網(wǎng)絡(luò)中的有效時(shí)間。出現(xiàn)該指令的主要原因是,在訪問(wèn)站點(diǎn)時(shí),有很多情況使得數(shù)據(jù)包在一定時(shí)間內(nèi)不能被傳遞到目的地,但是又不能讓該數(shù)據(jù)包無(wú)期限地存在,于是就需要設(shè)定一段時(shí)間,當(dāng)數(shù)據(jù)包在這段時(shí)間內(nèi)沒(méi)有到達(dá)目的地,就會(huì)被丟棄,然后發(fā)送都會(huì)接收到一個(gè)消息,并決定是否要重發(fā)數(shù)據(jù)包。

使用該指令的一個(gè)例子如下:

resolver 127.0.0.1 [::1}:5353 valid=30s

在實(shí)際應(yīng)用中,一般不需要設(shè)置這么復(fù)雜,只要將DNS服務(wù)器的IP地址設(shè)置給該指令即可。

從Nginx1.1.7版本開(kāi)始,該指令支持設(shè)置多個(gè)IP地址,從Nginx1.3.1開(kāi)發(fā)版本和Nginx1.2.2穩(wěn)定版本開(kāi)始,該指令支持設(shè)置IPV6地址。

2.resolver_timeount指令

resolver_timeount time;

該指令用于設(shè)置DNS服務(wù)器域名解析超時(shí)時(shí)間,語(yǔ)法結(jié)果為:

3.proxy_pass指令

該指令用于設(shè)置代理服務(wù)器的協(xié)議和地址,它不僅僅用于Nginx服務(wù)器的代理服務(wù)器,更主要的是應(yīng)用于反向代理服務(wù),我們馬上就會(huì)談及。該指令的語(yǔ)法結(jié)構(gòu)為:

proxy_pass URL;

其中,URL即為設(shè)置的代理服務(wù)器協(xié)議和地址。

在代理服務(wù)配置中,該指令的設(shè)置相對(duì)固定,因此在這里就不介紹其他細(xì)節(jié)了,具體內(nèi)容在學(xué)習(xí)Nginx服務(wù)器的反向代理服務(wù)時(shí)再重點(diǎn)闡述。在代理服務(wù)配置中,該指令配置為:

proxy_pass http://$http_host$request_uri;

其中,代理服務(wù)器協(xié)議設(shè)置為HTTP,$http_host和$request_uri兩個(gè)變量是Nginx配置支持的用于自動(dòng)獲取主機(jī)和URI的變量。配置代理服務(wù)時(shí),一般不要改變?cè)撝噶畹呐渲谩?/p>

 正向代理服務(wù)使用示例

..
server
{
   resolver 8.8.8.8;
   listen 82;
   location /
   {
       proxy_pass http://$http_host$request_uri;
   }
}

實(shí)現(xiàn)的片段很簡(jiǎn)單,設(shè)置DNS服務(wù)器地址為8.8.8.8,使用默認(rèn)的53號(hào)端口作為DNS服務(wù)器的服務(wù)端口,代理服務(wù)的監(jiān)聽(tīng)端口設(shè)置為82端口,Nginx服務(wù)器接收到的所有請(qǐng)求都由第5行的location塊進(jìn)行過(guò)濾處理。

Nginx服務(wù)器代理服務(wù)使用的場(chǎng)合不多,從上一節(jié)的配置指令來(lái)看,功能也相對(duì)簡(jiǎn)單。在使用過(guò)程中,有一些需要注意的事項(xiàng)在這里說(shuō)明一下。

首先,我們?cè)谏厦嫣岬竭^(guò),設(shè)置Nginx服務(wù)器的代理服務(wù)器,一般是配置到一個(gè)server塊中,注意,在該server塊中,不要出現(xiàn) server_name指令,即不要設(shè)置虛擬主機(jī)的名稱或IP。而resolver指令是必需的,如果沒(méi)有該指令,Nginx服務(wù)器無(wú)法處理接收到的域名。

其次,Nginx服務(wù)器的代理服務(wù)器不支持正向代理HTTPS站點(diǎn)。

Nginx的反向代理服務(wù)

Nginx服務(wù)器的反向代理服務(wù)是其最常用的重要功能之一,在實(shí)際工作中應(yīng)用廣泛,涉及的配置指令也比較多,各類指令完成的功能也不盡相同。下面按照功能分類向大家介紹配置該服務(wù)需要掌握的指令。由反向代理服務(wù)又可以衍生出多種與此相關(guān)的Nginx服務(wù)器的重要功能,隨后將逐步梳理這些功能,并提供配置實(shí)例供大家參考。

Nginx服務(wù)器提供的反向代理服務(wù)也是比較高效的。它能夠同時(shí)接收的客戶端連接由worker_processes指令和worker_connections指令決定,計(jì)算方法為:worker_processes * worker_connections / 4.

配置Nginx服務(wù)器反向代理用到的指令如果沒(méi)有特別說(shuō)明,原則上可以出現(xiàn)在Nginx配置文件的http塊、server塊或者location塊中,但同正向代理服務(wù)的設(shè)置一樣,一般是在搭建的Nginx服務(wù)器中單獨(dú)配置一個(gè)server塊來(lái)設(shè)置反射代理服務(wù)。這些指令主要由ngx_http_proxy_module模塊進(jìn)行解析和處理。該模塊是Nginx服務(wù)器的標(biāo)準(zhǔn)HTTP模塊。

反向代理的基本設(shè)置的27個(gè)指令

學(xué)習(xí)Nginx服務(wù)器的反向代理 服務(wù),要涉及與后端代理服務(wù)器相關(guān)的配置,是客戶端提供正常Web服務(wù)的基礎(chǔ),大家應(yīng)該熟練掌握,尤其是proxy_pass指令,在實(shí)際應(yīng)用過(guò)程中需要注意一些配置細(xì)節(jié),需要小心使用。

1.proxy_pass指令

    該指令用來(lái)設(shè)置被代理服務(wù)器的地址,可以是主機(jī)名稱、IP地址加端口號(hào)等形式。其語(yǔ)法結(jié)構(gòu)為:

proxy_pass URL;

   其中,URL為要設(shè)置的被代理服務(wù)器的地址,包含傳輸協(xié)議、主機(jī)名稱或IP地址加商品號(hào)、URI等要素。傳輸協(xié)議通常是“http”或者“https”。指令同時(shí)還接受以“unix”開(kāi)始的UNIX-domain套接字路徑。例如:

proxy_pass http://www.myweb.name/uri;
proxy_pass http://localhost/uri;
proxy_pass http://unix:/tmp/backend.socket:/uri/;

 如果被代理服務(wù)器是一組服務(wù)器的話,可以使用upstream指令配置后端服務(wù)器組。例如:

#多個(gè)服務(wù)器
...
upstream proxy_svrs                  #配置后端服務(wù)器
{
   server http://192.168.1.1:8001/uri/;
   server http://192.168.1.2:8001/uri/;
   server http://192.168.1.3:8001/uri/;
}
 
server
{
   ...
   listen 80;
   server_name www.myweb.name;
   location /
   {
       proxy_pass proxy_svrs;      #使用服務(wù)器組名稱
   }
}

      這里首先需要提醒大家proxy_pass指令在使用服務(wù)器組名稱時(shí)應(yīng)該注意一個(gè)細(xì)節(jié)。在上例中,在組內(nèi)的各個(gè)服務(wù)器中都指明了傳輸協(xié)議“http://”,而在proxy_pass指令中就不需要指明了。如果 現(xiàn)在將upstream指令的配置改為:

#不指明http
...
upstream proxy_svrs                  #配置后端服務(wù)器
{
   server 192.168.1.1:8001/uri/;
   server 192.168.1.2:8001/uri/;
   server 192.168.1.3:8001/uri/;
}

    我們就需要在proxy_pass指令中指明傳輸協(xié)議“http://”;

proxy_pass http://proxy_svrs;

在使用該指令的過(guò)程中還需要注意,URL中是否包含有URI,Nginx服務(wù)器的處理方式是不同的。如果URL中不包含URI,Nginx服務(wù)器不會(huì)改變?cè)刂返腢RI;但是如果包含了URI,Nginx服務(wù)器將會(huì)使用新的URI替代原來(lái)的URI。我們舉例來(lái)說(shuō)明。

請(qǐng)看下面的Nginx配置片段:

..
server
{
   ...
   server_name www.myweb.name;
   resolver 8.8.8.8;
   listen 82;
   location /server/
   {
       ...
       proxy_pass http://192.168.1.1;
   }
}

    如果客戶端使用“http://www.myweb.name/server ”發(fā)起請(qǐng)求,該請(qǐng)求被配置中顯示的location塊進(jìn)行處理,由于proxy_pass指令變量不含有URI,所以轉(zhuǎn)向的地址為“http:///192.168.1.1/server ”;我們?cè)賮?lái)看下面的Nginx片段:

..
server
{
   ...
   server_name www.myweb.name;
   resolver 8.8.8.8;
   listen 82;
   location /server/
   {
       ...
       proxy_pass http://192.168.1.1/loc;
   }
}

在該配置實(shí)例中,proxy_pass指令的URI包含了URI“/loc”;如果客戶端仍然使用“http://www.myweb.name/server ”發(fā)起請(qǐng)求,Nginx服務(wù)器將會(huì)把地址轉(zhuǎn)向“http://192.168.1.1/loc/ ”;

    通過(guò)上面的實(shí)例,我們可以總結(jié) 出,在使用proxy_pass指令時(shí),如果不想改變?cè)刂分械腢RI,就不要在URL變量中配置URI。

    明白了上面這兩個(gè)例子的用法,我們來(lái)解釋大家經(jīng)常討論的一個(gè)問(wèn)題,就是proxy_pass指令的URL變量末尾是否加斜杠“/”的問(wèn)題。

    請(qǐng)看這兩個(gè)配置示例:

#配置1 proxy_pass http://192.168.1.1;
#配置2 proxy_pass http://192.168.1.1/;

配置1和配置2的區(qū)別在于,配置2中的proxy_pass指令的URL變量末尾添加了斜杠“/”,這意味著配置2中的proxy_pass指令的URL變量包含了URI“/”,而配置1中的proxy_pass指令的URL變量不包含URI。理解了這一點(diǎn),我們就可以解釋下面的實(shí)例和現(xiàn)象了。大家注意各例子之間的對(duì)比。

    實(shí)例1:

..
server
{
   ...
   listen 80;
   server_name www.myweb.name;         #注意location的uri變量
   location /
   {
       ...
       #配置1 proxy_pass http://192.168.1.1;
       #配置2 proxy_pass http://192.168.1.1/;
   }
}

  在該配置中,location塊使用“/”作為uri變量的值來(lái)匹配不包含URI的請(qǐng)求URL。由于請(qǐng)求URL中不包含URL,因此配置1和配置2的效果是一樣的。比如客戶端的請(qǐng)求URL為“http://www.myweb.name/index.htm”,其將會(huì)被實(shí)例1中的location塊匹配成功并進(jìn)行處理。不管使用配置1不是配置2,轉(zhuǎn)向的URL都為:“http://192.168.1.1/index.htm”。

實(shí)例2:

..
server
{
   ...
   listen 80;
   server_name www.myweb.name;         #注意location的uri變量
   location /server/
   {
       ...
       #配置1 proxy_pass http://192.168.1.1;
       #配置2 proxy_pass http://192.168.1.1/;
   }
}

在該配置中,location塊使用“/server/”作為uri變量的值來(lái)匹配包含的URI“/server/”的請(qǐng)求URL。這時(shí),使用配置1和配置2的轉(zhuǎn)向結(jié)果就不相同了。使用配置1和配置2的轉(zhuǎn)向效果就不相同了。使用配置1時(shí)候,proxy_pass指令中的URL變量不包含URI,Nginx服務(wù)器將不改變?cè)刂返腢RI,使用配置2的時(shí)候,proxy_pass指令中的URL變量包含URI“/”,Nginx服務(wù)器會(huì)將原地址的URI替換為”/”。

比如客戶端的請(qǐng)求URI為“http://www.myweb.name/server/index.htm”將會(huì)被實(shí)例2的location塊匹配成功并進(jìn)行處理。使用配置1的時(shí)候,轉(zhuǎn)向的URL為“http://192.168.1.1/server/index.htm”,原地址的URI“、server/”示被改變;使用配置2時(shí),轉(zhuǎn)向的URL為“http://192.168.1.1/index.htm”,可以看到原地址的URI“/server/”被替換為“/”。

大家在應(yīng)用過(guò)程中,一定要注意到該指令在配置上的細(xì)節(jié)問(wèn)題,分清楚URL和URI的區(qū)別與聯(lián)系,并能夠正確使用它們配置出符合需求的Nginx服務(wù)器。

2.proxy_hide_header指令

 該指令用于設(shè)置Nginx服務(wù)器在發(fā)送HTTP響應(yīng)時(shí),隱藏一些頭域信息。其語(yǔ)法結(jié)構(gòu)為:

proxy_hide_header field;

其中,field為需要隱藏的頭域。該指令可以在http塊、server塊或者location塊中進(jìn)行配置。

3.proxy_pass_header指令

默認(rèn)情況下,Nginx服務(wù)器在發(fā)送響應(yīng)報(bào)文時(shí),報(bào)文頭中不包含“Date”、“Server”、“X-Accel”等來(lái)自被代理服務(wù)器的頭域信息。該指令可以設(shè)置這些頭域信息以被發(fā)送,其語(yǔ)法結(jié)構(gòu)為:

proxy_pass_header field;

4.proxy_pass_request_body指令

該指令用于配置是否將客戶端請(qǐng)求的請(qǐng)求體發(fā)送給代理服務(wù)器,其語(yǔ)法結(jié)構(gòu)為:

proxy_pass_request_body on | off;

默認(rèn)開(kāi)啟(on),開(kāi)頭可以在http塊、server塊或者location塊中進(jìn)行配置。

5.proxy_pass_request_headers指令

該指令用于配置是否將客戶端請(qǐng)求的請(qǐng)求頭發(fā)送給代理服務(wù)器,其語(yǔ)法結(jié)構(gòu)為:

proxy_pass_request_headers  on | off;

默認(rèn)開(kāi)啟(on),開(kāi)頭可以在http塊、server塊或者location塊中進(jìn)行配置。

6.proxy_set_header指令

該指令可以理發(fā)Nginx服務(wù)器接收到的客戶端請(qǐng)求的請(qǐng)求頭信息,然后將新的請(qǐng)求頭發(fā)送給被代理的服務(wù)器,其語(yǔ)法結(jié)構(gòu)為:

proxy_set_header field value;

field,要更新的信息所在的區(qū)域;value,更改的值,支持使用文本、變量或者變量的組合。

默認(rèn)情況下,該指令的設(shè)置為:

proxy_set_header Host $proxy_host;
proxy_set_header Connection close;

 請(qǐng)看一些設(shè)置實(shí)例:

proxy_set_header Host $http_host;           #將目前Host頭域的值填充成客戶端的地址
proxy_set_header Host $$host;               #將當(dāng)前l(fā)ocation塊的server_name指令填充到Host頭域
proxy_set_header Host $$host:$proxy_port;   #listener指令值一起填充到Host頭域.

7.proxy_set_body指令

指該指令可以更改Nginx服務(wù)器接收到的客戶端請(qǐng)求的請(qǐng)求信息,然后將新的請(qǐng)求體發(fā)送給被代理的服務(wù)器。其語(yǔ)法結(jié)構(gòu)為:

proxy_set_body_value;

  其中,value為更改的信息,支持使用文本、變量或者變量的組合。

8.proxy_bind指令

官方文檔中對(duì)該指令的解釋是,強(qiáng)制將與代理主機(jī)的連接綁定到指定的IP地址。通俗來(lái)講就是,在配置多個(gè)基于名稱或者基于IP地址。通俗來(lái)講就是,在配置了多個(gè)基于名稱或者基于IP主機(jī)的情況下,如果我們希望代理連接由指定的主機(jī)處理,就可以使用該指令進(jìn)行配置,其語(yǔ)法結(jié)構(gòu)為:

proxy_bind adress;

  其中,adress為指定主機(jī)的IP地址。 

9.proxy_connect_timeout指令

該指令配置Nginx服務(wù)器與后端被代理服務(wù)器嘗試建立連接的超時(shí)時(shí)間,其語(yǔ)法結(jié)構(gòu)為:

proxy_connect_timeout time;

其中,time為設(shè)置的超時(shí)時(shí)間,默認(rèn)60s。

10.proxy_read_timeout指令

該指令配置Nginx服務(wù)器向后端被代理服務(wù)器(組)發(fā)出的read請(qǐng)求后,等待響應(yīng)的超時(shí)時(shí)間,其語(yǔ)法結(jié)構(gòu)為:

proxy_read_timeout time;

其中,time為設(shè)置的超時(shí)時(shí)間,默認(rèn)60s。

11.proxy_send_timeout指令

該指令配置Nginx服務(wù)器向后端被代理服務(wù)器(組)發(fā)出的write請(qǐng)求后,等待響應(yīng)的超時(shí)時(shí)間,其語(yǔ)法結(jié)構(gòu)為:

proxy_write_timeount time

其中,time為設(shè)置的超時(shí)時(shí)間,默認(rèn)60s。

12.proxy_http_version指令

該指令設(shè)置用于Nginx服務(wù)器提供代理服務(wù)的HTTP協(xié)議版本,其語(yǔ)法結(jié)構(gòu)為:

proxy_http_version 1.0 |  1.1;

默認(rèn)版本為1.0版本,1.1版本支持upstream服務(wù)器組設(shè)置的keepalive指令。

13.proxy_method指令

該指令用于設(shè)置Nginx服務(wù)器請(qǐng)求被代理服務(wù)器時(shí)使用的請(qǐng)求方法,一般為POST或者GET。設(shè)置了該指令,客戶端的請(qǐng)求方法將被忽略。其語(yǔ)法結(jié)構(gòu)為:

proxy_method method;

其中,method的值可以設(shè)置為POST或者GET,注意不加引號(hào)。

14.proxy_ignore_client_abort指令

該指令用過(guò)設(shè)置在客戶端中斷網(wǎng)絡(luò)請(qǐng)求時(shí),Nginx服務(wù)器是否中斷對(duì)被代理服務(wù)器的請(qǐng)求,其語(yǔ)法結(jié)構(gòu)為:

proxy_ignore_client_abort on | off

默認(rèn)設(shè)置為off,當(dāng)客戶端中斷網(wǎng)絡(luò)請(qǐng)求時(shí),Nginx服務(wù)器中斷對(duì)被代理服務(wù)器的請(qǐng)求。

15.proxy_ignore_header指令

該指令用于設(shè)置一些HTTP響應(yīng)頭的頭域,Nginx服務(wù)器接收到被代理服務(wù)器的響應(yīng)數(shù)據(jù)后,不會(huì)處理被設(shè)置的頭域。其語(yǔ)法結(jié)構(gòu)為:

proxy_ignore_header field ...;

其中,field為要設(shè)置的HTTP響應(yīng)頭的頭域,例如“X-Accel-Redirect”、“X-Accel-Expires”、“Cache-Control”、“Expires”或“Set-Cookie”等。

16.proxy_redirect指令

該指令用于修改被代理服務(wù)器返回的響應(yīng)頭中的Location頭域和“Refresh”頭域,與proxy_pass指令配合使用。比如,Nginx服務(wù)器通過(guò)proxy_pass指令將客戶端的請(qǐng)求地址重寫(xiě)為被代理服務(wù)器的地址,那么Nginx服務(wù)器返回客戶端的響應(yīng)頭中“Location”頭域顯示的地址就應(yīng)該和客戶端發(fā)起請(qǐng)求的地址相對(duì)應(yīng),而不是代理服務(wù)器直接返回的地址信息,否則就會(huì)出問(wèn)題。該指令解決了這個(gè)問(wèn)題,可以把代理服務(wù)器返回的地址信息更改為需要的地址信息。其語(yǔ)法結(jié)構(gòu)為:

proxy_redirect redirect replacement
proxy_redirect default;
proxy_redirect off;

redirect,匹配“Location”頭域值的字符串,支持變量的使用和正則表達(dá)式。

replacement,用于替換redirect變量?jī)?nèi)容的字符串,支持變量的使用。

該指令的用法我們通過(guò)幾個(gè)配置實(shí)例來(lái)解釋。

對(duì)于第1個(gè)結(jié)構(gòu),假設(shè)被代理服務(wù)器返回的響應(yīng)頭中的“Location”頭域?yàn)椋?/p>

Location: http://localhost:8081/proxy/some/uri

該指令設(shè)置為:

proxy_redirect http://localhost:8081/proxy/ http://myweb/fronted/;

Nginx服務(wù)器會(huì)將“Location”頭域信息更改為:

Location:http://myweb/frontend//some/uri;

這樣,客戶端收到的響應(yīng)信息頭部中的“Location”頭域就被更改了。

結(jié)構(gòu) 2使用default,代表使用location塊的uri變量作為replacement,并使用proxy_pass變量作為redirect。請(qǐng)看下面兩段配置,它們的配置效果是等同的。

#配置1
location /server/
{
   proxy_pass http://proxyserver/source/;
   proxy_redirect default;
 
}
 
#配置2
location /server/
{
   proxy_pass http//proxyserver/source/;
   proxy_redirect http://proxyserver/source/ /server/;
 
}

使用結(jié)構(gòu)3可以將當(dāng)前作用域下所有的proxy_redirect指令全部設(shè)置為無(wú)效。

17.proxy_intercept_errors指令

該指令用于配置一個(gè)狀態(tài)是否開(kāi)啟還是關(guān)閉。在開(kāi)啟狀態(tài)時(shí),如果被代理的服務(wù)器返回的HTTP狀態(tài)碼為400或者大于400,則Nginx服務(wù)器使用自己定義的錯(cuò)誤頁(yè)(使用error_page指令);如果是關(guān)閉狀態(tài),Nginx服務(wù)器直接將被代理服務(wù)器返回的HTTP狀態(tài)返回給客戶端。其請(qǐng)求結(jié)構(gòu)為

proxy_intercept_errors on | off

18.proxy_headers_hash_max_size指令

該指令用于配置HTTP報(bào)文頭哈希表的容量,其語(yǔ)法結(jié)構(gòu)為:

proxy_headers_hash_max_size size;

其中,size為HTTP報(bào)文頭哈希表的容量上限,默認(rèn)為512個(gè)字符,即:

proxy_headers_hash_max_size 512;

Nginx服務(wù)器為了能夠快速檢索HTTP報(bào)文頭中的各項(xiàng)信息,比如服務(wù)器名稱、MIME類型、請(qǐng)求頭名等,使用哈希表存儲(chǔ)這些信息。Nginx服務(wù)器在申請(qǐng)存放HTTP報(bào)文頭的空間時(shí),通常以固定大小為單位申請(qǐng),該大小由proxy_headers_hash_bucket_size指令配置。

在Nignx配置中,不僅能夠配置整個(gè)哈希表的大小上限,對(duì)大部分內(nèi)容項(xiàng),也可以配置其大小上限,比如server_names_hash_max_size指令和server_names_hash_bucket_size指令用來(lái)設(shè)置服務(wù)器名稱的字符數(shù)長(zhǎng)度。

19.proxy_headers_hash_bucket_size指令

該指令用于設(shè)置Nginx服務(wù)器申請(qǐng)存放HTTP報(bào)文頭的哈希表容量的單位大小。該指令的具體作用在上面proxy_headers_bucket_size指令的使用中已經(jīng)說(shuō)明。其語(yǔ)法結(jié)構(gòu)為:

proxy_headers_hash_bucket_size size;

20.proxy_next_upstream指令

在配置Nginx服務(wù)器反向代理功能時(shí),如果使用upstream指令配置了一組服務(wù)器作為代理 服務(wù)器,服務(wù)器組中各服務(wù)器的訪問(wèn)規(guī)則遵循upstream指令配置的輪詢規(guī)則 ,同時(shí)可以使用該指令配置在發(fā)生哪些異常情況時(shí),將請(qǐng)求順次交由下一個(gè)組內(nèi)服務(wù)器處理。該指令的語(yǔ)法結(jié)構(gòu)為:

proxy_next_upstream status ...;

其中,status為設(shè)置的服務(wù)器返回狀態(tài),可以是一個(gè)或者多個(gè)。這些狀態(tài)包括:

error,建立連接、向被代理服務(wù)器發(fā)送請(qǐng)求或者讀取響應(yīng)頭時(shí)服務(wù)器發(fā)生連接錯(cuò)誤。

timeout,建立連接、向被代理服務(wù)器發(fā)送請(qǐng)求或者讀取響應(yīng)頭時(shí)服務(wù)器發(fā)生連接超時(shí)。

invalid_header,被代理的服務(wù)器返回的響應(yīng)頭為空或者無(wú)效。

http_500|http_502|http_503|http_504|http_404,被代理的服務(wù)器返回500、502、503、504或者404狀態(tài)代碼。

off,無(wú)法將請(qǐng)求發(fā)送給被代理的服務(wù)器。

注意

與被代理的服務(wù)器進(jìn)行數(shù)據(jù)傳輸?shù)倪^(guò)程中發(fā)送錯(cuò)誤的請(qǐng)求,不包含在該指令支持的狀態(tài)之內(nèi)。

21.proxy_ssl_session_reuse指令

該指令用于配置是否使用基于SSL安全協(xié)議的會(huì)話連接(“https://”)被代理的服務(wù)器,其語(yǔ)法結(jié)構(gòu)為:

proxy_ssl_session_reuse on | off 

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
污污的网站18| 亚洲国产精品成人天堂| 男人的天堂avav| 午夜精品中文字幕| av网站在线观看不卡| 中国老女人av| 免费不卡av网站| 日韩av片网站| caoporn超碰97| 日韩欧美国产综合在线| 青草网在线观看| av一区二区三区免费观看| 咪咪色在线视频| 污污的视频免费观看| mm1313亚洲国产精品无码试看| 日韩日韩日韩日韩日韩| 蜜臀av性久久久久蜜臀av| 亚洲国产欧美91| 中文字幕乱码免费| 国产三级中文字幕| 中文字幕色呦呦| 成人短视频在线观看免费| 99精品视频网站| 天天做天天爱天天高潮| www亚洲国产| 欧美日韩视频免费| www..com日韩| av无码精品一区二区三区| 国产成人综合一区| 色啦啦av综合| 亚洲国产精品影视| 欧美中日韩在线| 国产97在线 | 亚洲| 女性隐私黄www网站视频| 国产真人无码作爱视频免费| 中国黄色片免费看| 三级一区二区三区| 久久天天东北熟女毛茸茸| 国产欧美精品aaaaaa片| 日韩精品一区二区三区久久| 97公开免费视频| 中文字幕超清在线免费观看| 男人的天堂avav| 男人的天堂日韩| 妞干网这里只有精品| 久无码久无码av无码| 成年人黄色片视频| 免费看av软件| 不要播放器的av网站| 一级黄色片国产| 青青草国产精品视频| 国产精品视频黄色| 日本一级黄视频| 天美星空大象mv在线观看视频| 日本女人高潮视频| 欧美一级片中文字幕| 天天干天天色天天爽| www.四虎成人| 国产一区二区四区| 污污的视频免费| 青青草国产精品视频| 中文国产在线观看| 国产成人无码av在线播放dvd| 亚洲 欧洲 日韩| 免费黄色一级网站| 国产美女永久无遮挡| 久久国产这里只有精品| 国产极品尤物在线| 国产在线视频在线| 亚洲第一页在线视频| 亚洲黄色av网址| 人妻精品无码一区二区三区 | 精品国产一区二区三区在线| 女人喷潮完整视频| 青青青青在线视频| 亚洲综合激情五月| 欧美视频亚洲图片| 污污动漫在线观看| 中文字幕在线观看第三页| 成人性生活视频免费看| 永久免费在线看片视频| 57pao国产成永久免费视频| 亚洲精品无码久久久久久| www.亚洲视频.com| 成人国产在线看| 欧洲xxxxx| 强伦女教师2:伦理在线观看| 涩涩网站在线看| 亚洲欧美日本一区二区| 911福利视频| 色呦色呦色精品| 亚洲一区二区图片| 北条麻妃亚洲一区| 国产91视频一区| bt天堂新版中文在线地址| 中文字幕超清在线免费观看| 特黄特黄一级片| 色哟哟免费网站| 加勒比成人在线| 大陆极品少妇内射aaaaa| 久久久999免费视频| 国产一区亚洲二区三区| 日韩av一二三四| 在线观看免费污视频| 中文字幕资源在线观看| 日韩av片免费观看| 男人的天堂avav| 国产福利视频在线播放| 91网址在线播放| 四虎永久免费网站| 国产精品裸体瑜伽视频| 国产九九在线视频| 91性高潮久久久久久久| 日韩 欧美 视频| 少妇性l交大片| 色乱码一区二区三区熟女| 日韩一级片免费视频| 日本www高清视频| 久久精品在线免费视频| 色欲av无码一区二区人妻| 午夜大片在线观看| 国产精品一区二区免费在线观看| 欧美精品性生活| 国产精品一色哟哟| 欧美成年人视频在线观看| 日韩极品视频在线观看| 欧美三级午夜理伦三级富婆| 亚洲爆乳无码精品aaa片蜜桃| 国语对白做受xxxxx在线中国| 亚洲怡红院在线| 欧美黄网站在线观看| 视频一区二区视频| 亚洲一级免费观看| 国产极品在线视频| 香蕉视频免费版| 中国黄色片免费看| 波多野结衣乳巨码无在线| 亚洲天堂av一区二区三区| 99久久激情视频| 欧美图片激情小说| 日韩精品福利片午夜免费观看| 爆乳熟妇一区二区三区霸乳| 久草免费福利在线| 日本精品免费视频| 网站在线你懂的| 九九热精品在线播放| av动漫在线观看| 欧美黑人经典片免费观看 | 国产精品自在自线| 99福利在线观看| 欧美激情 国产精品| 精品人妻大屁股白浆无码| 四虎1515hh.com| 三日本三级少妇三级99| 性刺激的欧美三级视频| 日韩在线xxx| 116极品美女午夜一级| 亚洲熟妇国产熟妇肥婆| 久青草视频在线播放| 国风产精品一区二区| 91免费网站视频| japanese在线播放| 波多野结衣 作品| 日韩成人手机在线| 人妻夜夜添夜夜无码av| 欧美一级视频免费看| 中文字幕无码精品亚洲资源网久久| 日本丰满少妇黄大片在线观看| 黄色一级片网址| 九九久久九九久久| www.日本少妇| 国产又大又硬又粗| 91香蕉视频导航| 日日干日日操日日射| 18视频在线观看娇喘| 国产资源在线免费观看| 日本欧美黄色片| 99草草国产熟女视频在线| 亚洲成人天堂网| 久久av高潮av| 国产a级片免费观看| 污版视频在线观看| 亚洲小说欧美另类激情| www插插插无码视频网站| 国产日韩一区二区在线观看| 少妇一级淫免费放| 免费观看黄色大片| 丰满爆乳一区二区三区| 在线黄色免费观看| 国产日产欧美一区二区| 精品人妻一区二区三区四区在线| www.xxx亚洲| 国产精品igao激情视频| 日韩欧美一区三区| 在线观看日本一区二区| www.欧美黄色| 亚洲xxx在线观看| 亚洲美免无码中文字幕在线| 91精品999| 国产视频一视频二|