nginx服務器有什么作用?什么叫反向代理?為什么要使用反向代理?


1.背景介紹

現在許多大型web網站都用到反向代理。除了可以防止外網對內網服務器的惡性攻擊、緩存以減少服務器的壓力和訪問安全控制之外,還可以進行負載均衡,將用戶請求分配給多個服務器。

反向代理服務器Nginx

Nginx作為近年來較火的反向代理服務器,安裝在目的主機端,主要用於轉發客戶機請求,后台有多個http服務器提供服務,nginx的功能就是把請求轉發給后面的服務器,決定哪台目標主機來處理當前請求。

2.知識剖析

1.什么是代理服務器:

代理服務器,客戶端在發送請求時,不會直接發給主機,而是先發給代理服務器,代理服務器接受請求之后將請求分發給不同的主機,並接受主機返回的數據,存在代理服務器中的硬盤中,再發送給客戶端。

2.使用代理服務器有什么優點:

(1)提高訪問速度

由於目標主機返回的數據會存在代理服務器的硬盤中,因此下一次客戶再訪問相同的站點數據時,會直接從代理服務器的硬盤中讀取,起到了緩存的作用,尤其對於熱門站點能明顯提高請求速度。

(2)防火牆作用

由於所有的客戶機請求都必須通過代理服務器訪問遠程站點,因此可在代理服務器上設限,過濾某些不安全信息。

(3)通過代理服務器訪問不能訪問的目標站點

互聯網上有許多開發的代理服務器,客戶機可訪問受限時,可通過不受限的代理服務器訪問目標站點,通俗說,我們使用的翻牆瀏覽器就是利用了代理服務器,可直接訪問外網。

3.正向代理和反向代理:

正向代理,架設再客戶機與目標機之間,只用於代理內部網絡對Internet的連接請求,客戶機必須指定代理服務器,並將本來要直接發送到Web服務器上的http請求發送到代理服務器中。

什么意識呢,就是學生從四面八方過來上學,大門只有一個,學校也只有一個,所有的學生都必須通過這個大門才能進入學校,學生好像是客戶機,大門就是代理服務器,學校就是目標主機。

反向代理服務器架設在服務器端,通過緩沖經常被請求的頁面來緩解服務器的工具量,將客戶機請求轉發給內部網絡上的目標服務器;

並將從服務器上得到的結果返回給Internet請求連接的客戶端,此時代理服務器與目標主機一起對外表現為一個服務器。

打個比方,反向代理就好像是幼兒園學生放學了要回家,老師只有一個,學生家長有很多,老師領着學生將學生交給家長,這里面呢,學生就是各個客戶機請求,老師是一個代理服務器,家長是各個目標主機,老師管理者各個學生,再把各個學生分發給不同的家長,這就是反向代理。

4.負載均衡

(1)為什么要使用負載均衡

當一台服務器的單位時間內訪問量越大的時候,服務器壓力會越大,當一台服務器壓力大得超過自身得承受壓力的時候,服務器會崩潰。

為了避免服務器崩潰,讓用戶更好的體驗,我們通常通過負載均衡的方式來分擔服務器的壓力。那么什么是負載均衡呢?我們可以建立很多個服務器,

這些服務器組成一個服務器集群,然后當用戶訪問我們的網站的時候,先訪問一個中間服務器,再讓這個中間服務器在服務器集群中選擇壓力較小的服務器,

然后將該訪問請求引入選擇的服務器。這樣,用戶每次的訪問,都會保證服務器集群中的每個服務器的壓力區域平衡,分擔了服務器的壓力,避免了服務器崩潰的情況。

(2)幾種負載均衡的方式

1)、輪詢(默認)

每個請求按時間順序逐一分配到不同的后端服務器,如果后端服務器down掉,能自動剔除。

2)weight

指定輪循幾率,weight和訪問比率成正比,用於后端服務器性能不均的情況。

3)ip_hash

每個請求按訪問ip的hash結果分配,這樣每個訪問固定訪問一個后端服務器,可以解決session的問題。

4)fair(第三方)

按后端服務器的響應時間來分配請求,響應時間短的優先分配。

5)url_hash(第三方)

5.nginx的動靜分離

一般由nginx處理並發的http請求,如果該請求返回的響應是靜態文件(html、htm、css、js、圖片等)則直接由nginx處理,如果是動態文件(jsp、jspx、do、wsd)等,則將該請求轉發給Servlet容器Tomcat、Jetty、resin等進行處理。

3.常見問題

怎么實現上面說的反向代理,負載均衡和動靜分離?

在nginx的安裝目錄下打開nginx.conf文件,在里面配置一些內容。

nginx的負載均衡是怎么達到的?

在nginx的安裝目錄下打開nginx.conf文件,在里面配置我們需要用到的負載均衡的方式,比如輪詢,比重之類的。

正向代理一般在什么情況下使用?

正向代理一般是我們訪問國外或者我們直接訪問不到的地址的時候,這時候就需要一個正向代理,代理我們的服務器,然后通過正向代理向目的服務器發起請求,之后就可以訪問到目的服務器了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM