中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Nginx——正向代理和反向代理的區(qū)別

2019-02-26    來源:多智時(shí)代

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用

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

無論是正向代理,還是反向代理,說到底,就是代理模式的衍生版本罷了。我們都學(xué)習(xí)過代理設(shè)計(jì)模式,都知道代理模式中有代理角色和被代理角色,為什么這么說,因?yàn)檫@兩個(gè)角色對(duì)于我們理解正向和反向代理非常重要,下面會(huì)講到。

Nginx——正向代理和反向代理的區(qū)別

下面我將引入這樣一個(gè)場(chǎng)景,很多時(shí)候我們上網(wǎng)的網(wǎng)速特別慢,或者說由于翻墻問題導(dǎo)致我們無法訪問到國(guó)外的網(wǎng)站,通常這些情況我們會(huì)通過給瀏覽器配置一個(gè)網(wǎng)速快的、可以翻墻的代理ip及端口號(hào)來解決我們的問題,那么配置好之后,大概的請(qǐng)求流程如下圖所示:

Nginx——正向代理和反向代理的區(qū)別

我們首先請(qǐng)求代理服務(wù)器,然后代理服務(wù)器幫我們?nèi)タ焖僭L問國(guó)外的網(wǎng)站,對(duì)于這種代理方式,我們就稱之為正向代理。請(qǐng)記住,上面說到代理模式的兩個(gè)角色中,我們當(dāng)前的角色為被代理者,也就是瀏覽器這個(gè)角色。更重要的是,正向代理的本質(zhì)是我們?nèi)フ?qǐng)求外部的資源,如果以生產(chǎn)者、消費(fèi)者模式來區(qū)分,我們屬于消費(fèi)者。

總結(jié):

  • 正向代理,我們的角色是被代理者

  • 正向代理,我們不對(duì)外提供服務(wù),反而是對(duì)外消費(fèi)服務(wù),屬于消費(fèi)者

反向代理,很顯然,就是和正向代理相反,如果說正向代理是男,那么反向代理就是女了,親,此處不再糾結(jié)其他情況!下面我用一副圖片解釋下反向代理:

Nginx——正向代理和反向代理的區(qū)別

看完上面的圖片,請(qǐng)你想象一下這么一個(gè)場(chǎng)景,假設(shè)你現(xiàn)在是某公司技術(shù)總監(jiān),你們公司需要對(duì)外提供一套web服務(wù),那么你打算怎么做呢?

答案是可以通過反向代理來完成。通常你們公司擁有自己的IDC機(jī)房,機(jī)房通訊通常采用局域網(wǎng)交換機(jī),internet網(wǎng)用戶請(qǐng)求是無法直接訪問到局域網(wǎng)內(nèi)的web服務(wù)的,因此這個(gè)時(shí)候,你需要一臺(tái)反向代理服務(wù)器來接收internet web請(qǐng)求,然后將請(qǐng)求分發(fā)到局域網(wǎng)中的不同主機(jī)上進(jìn)行處理,處理完成之后再做出響應(yīng)。因此,反向代理大概就是這么一個(gè)場(chǎng)景。請(qǐng)記住,反向代理中,我們的角色是局域網(wǎng) web服務(wù)。

總結(jié):

  • 反向代理,我們的角色是局域網(wǎng) web服務(wù)

  • 反向代理,我們對(duì)外提供服務(wù),屬于服務(wù)提供者

2、nginx正向代理和反向代理實(shí)例解析

nginx在正向代理方面的應(yīng)用非常地少,因此,對(duì)于正向代理的相關(guān)配置指令也不多,下面是一個(gè)nginx作為正向代理服務(wù)器的配置實(shí)例,配置僅供參考。

server { resolver 192.168.1.1; #指定DNS服務(wù)器IP地址 listen 8080; location / { proxy_pass http://$http_host$request_uri; #設(shè)定代理服務(wù)器的協(xié)議和地址 } } 復(fù)制代碼

解釋下上面的指令,resolver配置DNS服務(wù)器的ip地址,可以配置多個(gè)。你可能會(huì)問,正向代理中為什么需要配置DNS服務(wù)器的ip地址呢?其實(shí)答案很簡(jiǎn)單,你想象下假如現(xiàn)在你的瀏覽器配置了正向代理服務(wù)器,你現(xiàn)在在瀏覽器中輸入http://oneSite.cn/index.html,根據(jù)正向代理原理,該url請(qǐng)求將會(huì)被正向代理服務(wù)器執(zhí)行,問題來了,如果你的代理服務(wù)器不配置DNS解析服務(wù),nginx怎么知道你這個(gè)oneSite.cn到底是個(gè)什么鬼,到底對(duì)應(yīng)因特網(wǎng)的ip地址是什么?所以這就是需要配置resolver指令的原因所在。

listen指令配置nginx監(jiān)聽瀏覽器請(qǐng)求的端口號(hào)。

proxy_pass指令配置接收到被代理瀏覽器發(fā)來的請(qǐng)求之后,需要幫忙執(zhí)行的請(qǐng)求是什么,$http_host$request_uri指明目的主機(jī)和uri,屬于nginx變量,一般不需要修改。

nginx反向代理的相關(guān)配置如下,在這里小編搭建兩個(gè)Spring boot小demo模擬上面反向代理的web服務(wù),相關(guān)源代碼可以在github獲取。

Nginx——正向代理和反向代理的區(qū)別

demo工程啟動(dòng)端口號(hào)為8081,demo1工程啟動(dòng)端口為8082,對(duì)于所有的請(qǐng)求前綴帶/demo的都將轉(zhuǎn)發(fā)到demo工程進(jìn)行處理,對(duì)于所有的請(qǐng)求前綴帶/demo1的都將轉(zhuǎn)發(fā)到demo1工程進(jìn)行處理。

nginx配置如下:

server { listen 80; location /demo { proxy_pass http://127.0.0.1:8081; } location /demo1 { proxy_pass http://127.0.0.1:8082; } } 復(fù)制代碼

啟動(dòng)demo和demo1兩個(gè)工程之后,瀏覽器輸入下面地址:

Nginx——正向代理和反向代理的區(qū)別

Nginx——正向代理和反向代理的區(qū)別

可以看到,外部統(tǒng)一使用80端口訪問服務(wù)時(shí),nginx根據(jù)路徑前綴進(jìn)行代理,然后返回執(zhí)行結(jié)果。對(duì)于nginx反向代理路徑配置有幾點(diǎn)需要注意,使用時(shí)要非常謹(jǐn)慎。

上面proxy_pass指令配置的url為http://127.0.0.1:8081,注意在該url后面不能使用/demo1后綴進(jìn)行代替,否則就報(bào)錯(cuò)了。為什么呢?首先nginx會(huì)判斷proxy_pass指令中配置的url地址是否包含uri,如果在proxy_pass指令中配置的url地址不包含uri,那么nginx將會(huì)使用請(qǐng)求路徑的uri進(jìn)行轉(zhuǎn)發(fā),如果在proxy_pass指令中配置的url地址包含uri,則nginx會(huì)忽略請(qǐng)求location中的uri,轉(zhuǎn)而使用你在proxy_pass中配置的uri進(jìn)行覆蓋,轉(zhuǎn)發(fā),另外,/也是一種uri,哈哈,要特別小心哈~

在不久的將來,云計(jì)算一定會(huì)徹底走入我們的生活,有興趣入行未來前沿產(chǎn)業(yè)的朋友,可以收藏云計(jì)算,及時(shí)獲取人工智能、大數(shù)據(jù)、云計(jì)算和物聯(lián)網(wǎng)的前沿資訊和基礎(chǔ)知識(shí),讓我們一起攜手,引領(lǐng)人工智能的未來!

標(biāo)簽: dns dns服務(wù) dns服務(wù)器 dns解析 idc 大數(shù)據(jù) 代理服務(wù)器 代碼 服務(wù)器 機(jī)房 配置dns服務(wù)器 云計(jì)算

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:甲骨文推出5TB磁帶 成就EB級(jí)磁帶庫(kù)

下一篇:Rackspace:開源OpenStack好比Linux