更新時間:2021-07-19 16:51:19 來源:動力節(jié)點 瀏覽1077次
代理服務器,客戶機在發(fā)送請求時,不會直接發(fā)送給目的主機,而是先發(fā)送給代理服務器,代理服務接受客戶機請求之后,再向主機發(fā)出,并接收目的主機返回的數(shù)據(jù),存放在代理服務器的硬盤中,再發(fā)送給客戶機。
由于目標主機返回的數(shù)據(jù)會存放在代理服務器的硬盤中,因此下一次客戶再訪問相同的站點數(shù)據(jù)時,會直接從代理服務器的硬盤中讀取,起到了緩存的作用,尤其對于熱門站點能明顯提高請求速度。
由于所有的客戶機請求都必須通過代理服務器訪問遠程站點,因此可在代理服務器上設限,過濾某些不安全信息。
互聯(lián)網(wǎng)上有許多開發(fā)的代理服務器,客戶機在訪問受限時,可通過不受限的代理服務器訪問目標站點,通俗說,我們使用的翻墻瀏覽器就是利用了代理服務器,雖然不能出國,但也可直接訪問外網(wǎng)。
正向代理,架設在客戶機與目標主機之間,只用于代理內(nèi)部網(wǎng)絡對Internet的連接請求,客戶機必須指定代理服務器,并將本來要直接發(fā)送到Web服務器上的http請求發(fā)送到代理服務器中。
Nginx反向代理服務器架設在服務器端,通過緩沖經(jīng)常被請求的頁面來緩解服務器的工作量,將客戶機請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡上的目標服務器;并將從服務器上得到的結(jié)果返回給Internet上請求連接的客戶端,此時代理服務器與目標主機一起對外表現(xiàn)為一個服務器。
現(xiàn)在許多大型web網(wǎng)站都用到反向代理。除了可以防止外網(wǎng)對內(nèi)網(wǎng)服務器的惡性攻擊、緩存以減少服務器的壓力和訪問安全控制之外,還可以進行負載均衡,將用戶請求分配給多個服務器。
Nginx作為近年來較火的反向代理服務器,安裝在目的主機端,主要用于轉(zhuǎn)發(fā)客戶機請求,后臺有多個http服務器提供服務,nginx的功能就是把請求轉(zhuǎn)發(fā)給后面的服務器,決定哪臺目標主機來處理當前請求。下面演示如何進行配置使Nginx發(fā)揮作用。
用作測試,簡單的使用2個tomcat實例模擬兩臺http服務器,分別將tomcat的端口改為8081和8082
192.168.72.49 8081.max.com
192.168.72.49 8082.max.com
upstream tomcatserver1 {
server 192.168.72.49:8081;
}
upstream tomcatserver2 {
server 192.168.72.49:8082;
}
server {
listen 80;
server_name 8081.max.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcatserver1;
index index.html index.htm;
}
}
server {
listen 80;
server_name 8082.max.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcatserver2;
index index.html index.htm;
}
}
(1)瀏覽器訪問8081.max.com,通過本地host文件域名解析,找到192.168.72.49服務器(安裝nginx)
(2)nginx反向代理接受客戶機請求,找到server_name為8081.max.com的server節(jié)點,根據(jù)proxy_pass對應的http路徑,將請求轉(zhuǎn)發(fā)到upstream tomcatserver1上,即端口號為8081的tomcat服務器。
請求8081.max.com,tomcat1接收返回首頁
請求8082.max.com,tomcat2接收返回首頁
通過分析我們不難得出,以百度為例,如果客戶機的IP和百度服務器(目標主機)的IP在同一個網(wǎng)段,那就形同局域網(wǎng)內(nèi)部發(fā)送請求,速度極快。
但如果滿足不了這種需求還想到達到一個較好的請求響應時,百度服務器就可以對外提供一個與目標服務器在一個網(wǎng)段的公網(wǎng)IP,也就是反向代理服務的IP,通過代理服務器轉(zhuǎn)發(fā)客戶機請求,決定幕后的N臺服務器誰來處理這個請求,并且由于反向代理服務器與目標主機在一個網(wǎng)段,訪問速度也會很快。
Nginx用作反向代理服務器時,它就是眾多反向代理服務器中的一種,通過簡單的配置,指定到服務器IP或域名地址便可將客戶機請求轉(zhuǎn)發(fā)給指定服務器處理請求。
以上就是動力節(jié)點小編介紹的"使用Nginx實現(xiàn)反向代理",希望對大家有幫助,想了解更多可查看Nginx視頻教程。動力節(jié)點在線學習教程,針對沒有任何Java基礎的讀者學習,讓你從入門到精通,主要介紹了一些Java基礎的核心知識,讓同學們更好更方便的學習和了解Java編程,感興趣的同學可以關(guān)注一下。