Nginx系列9:nginx正向代理概念與配置

1. 正向代理與反向代理的概念:

請(qǐng)參見(jiàn)之前的一片文章《Nginx基本功能及其原理》,理解什么是正向代理和反向代理服務(wù)。
理解這兩個(gè)概念的關(guān)鍵是要明白我們要讓服務(wù)器充當(dāng)?shù)慕巧湍康氖鞘裁矗?/p>

  • 在正向代理服務(wù)器中,充當(dāng)?shù)慕巧强蛻舳耍茖W(xué)上網(wǎng)軟件服務(wù)器充當(dāng)?shù)钠鋵?shí)就是正向代理),目的是訪問(wèn)外網(wǎng)的資源
  • 在反向代理服務(wù)器中,充當(dāng)?shù)慕巧钦军c(diǎn),目的是把站點(diǎn)的資源發(fā)布出去讓其他客戶端能夠訪問(wèn)

2. nginx服務(wù)器正向代理服務(wù)

使用Nginx服務(wù)器代理服務(wù)功能的情況相對(duì)反向代理要少一些,涉及的主要指令不多,一般在搭建nginx正向代理時(shí)單獨(dú)配置一個(gè)server塊來(lái)進(jìn)行配置。

2.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地址。如果不指定端口,默認(rèn)使用53;
  • time,設(shè)置數(shù)據(jù)包在網(wǎng)絡(luò)中的有效時(shí)間。
    使用該指令的一個(gè)例子如下:
resolver 127.0.0.1 [::1]:5353 valid=30s;

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

2.2 resolver_timeout指令:

該指令用于設(shè)置DNS服務(wù)器域名解析的超時(shí)時(shí)間,語(yǔ)法結(jié)構(gòu):
resolver_timeout time;

2.3 proxy_pass指令:

該指令用于設(shè)置代理服務(wù)器的協(xié)議和地址,它不僅僅用于Nginx服務(wù)器的正向代理,更多的應(yīng)用用于反向代理。語(yǔ)法結(jié)構(gòu):
proxy_pass URL;

  • URL,要設(shè)置的正向代理服務(wù)器的協(xié)議和地址;
    該指令的用法相對(duì)固定:
proxy_pass http://$http_host$request_uri;

其中,代理服務(wù)器的協(xié)議為HTTP,http_host和request_uri分別用于自動(dòng)獲取主機(jī)和URI。

3. Nginx做正向代理的例子

...
server {
    # 設(shè)置DNS服務(wù)器IP地址為8.8.8.8,默認(rèn)使用53端口
    resolver 8.8.8.8;
    # 代理服務(wù)監(jiān)聽(tīng)82端口
    listen 82;
    # nginx接收的所有請(qǐng)求都由location塊進(jìn)行過(guò)濾處理
    location / {
        proxy_pass http://$http_host$request_uri;
    }
}
...

注意:Nginx正向代理不支持HTTPS協(xié)議的站點(diǎn)。。。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容