第5章 總算走到Web伺服器 ~探險防火牆、Web伺服器~
在Web伺服器之前 還有各種伺服器
防火牆的種類
封包過濾的條件設定
使用通訊埠號碼以限定應用程式 Web伺服器的通訊埠號碼固定為80 若前面的目的端IP位址、且來源端IP位址的通訊埠號碼為80 若封包的目的端IP位址符合Web伺服器的位址,並且通訊埠號碼為80,即可通過 或者是封包的來源端IP位址符合Web伺服器的位址,並且通訊埠號碼為80,則也可通過
從控制位元判斷連線方向 在Web的動作中,封包的流動方向是雙向,因此光是從目的端和來源端的位址檢查起點、終點去檢查封包流動的方向,並無法辨識出現在的存取動作是對Web伺服器還是網際網路 TCP的控制位元 TCP在一開始的連接階段動作會送出3個控制封包
從公司內部LAN存取公開伺服器所在LAN的條件設定 設定條件 設定條件時就不能只設定經過網際網路和公開伺服器所在LAN這段的封包,連經過公司內部LAN和公開伺服器所在LAN之間的封包也要設定條件
從外部無法對公司內部LAN進行存取 一般而言,公司內部LAN都是分配私有位址,這個部分也要做設定。這是因為在網際網路和公司內部LAN之間來來去去的封包必須做位址轉換的動作,所以這部分當然也要做設定 一旦使用位址轉換的功能,自然無法從網際網路端存取公司內部網路
通過防火牆 防火牆要設定各種不同的條件。當封包抵達防火牆時,變判斷該封包是否符合條件,決定要讓它通過還是阻攔 如果判斷結果是應該予以通過,則將該封包中繼出去
Web伺服器設置在資料中心時 資料中心是直接連接位於ISP核心部分的NOC或連到供ISP業者間相連的IX
處理能力不足時 則利用多部伺服器以分散負荷 要提高系統處理能力,那麼就使用1部以上的伺服器來分攤處理,這種處理型態統稱為「分散處理」 如果採用這種做法,必須將用戶端所送過來的要求分散到不同的Web伺服器 分攤處理的方法有幾種,最簡單的方法應該是利用DNS伺服器進行分配 「輪詢法(Round Robin)」
利用分散負載裝置分配給各個Web伺服器 分散負載裝置或稱「Load Balancer」 用負端所傳送的查詢是送到這個分散負載裝置,分散負載裝置判斷該查詢應該傳送給哪個Web伺服器,再轉送到Web伺服器去 不要讓負荷集中在某一部、或某幾部伺服器上
利用快取伺服器 快取伺服器是一種利用「代理(Proxy)」的構造以快取資料的伺服器 代理這種構造是介於Web伺服器和用戶端之間,具有仲介對Web伺服器存取動作的功能,它在仲介存取動作時,會先將從Web伺服器得來的資料暫時儲存在硬碟,然後代替Web伺服器將該資料回傳給用戶端。這個動作稱為「快取」,快取伺服器就是利用這個功能
快取伺服器是利用更新日期管理內容
把封包送到快取伺服器的方法 把快取伺服器設在封包從用戶端往Web伺服器流過去的路上,讓快取伺服器半路把封包搶過來。就算不是在特定位置設置快取伺服器,也可以弄個專門搶封包的特別裝置,再從這裡轉送到快取伺服器 在將Web伺服器註冊到DNS伺服器上的時候,不寫Web伺服器,而改登錄快取伺服器
Proxy的原點是Forward Proxy 快取伺服器的原理是在Web伺服器端設置代理(Proxy)的架構,利用這個快取功能,不過Proxy其實也可以放在用戶端 Proxy這個架構還真是從放在用戶端的做法起的頭,稱為「Forward Proxy」
Reverse Proxy是Forward Proxy的改良版 在要求的URI部分不寫http://.…,只有檔案或程式的名稱就能跟直接存取Web伺服器一樣,讓要求轉送到Web伺服器。這種方式稱為「Reverse Proxy」 「Transparent Proxy」
利用內容快遞網路以分散負荷
如何找到離自己最近的快取伺服器 利用內容快遞服務的話,就等於是利用設置在整個網際網路上的許多快取伺服器(如圖5.1(d)),在這種情形之下,需要建立一個架構讓用戶端能從眾多的快取伺服器中找到離自己最近的快取伺服器以利進行存取
利用重定向伺服器均分存取對象 HTTP規格裡面定義了很多種標頭欄位,其中有一種標頭叫做Loacation。將Web伺服器的內容移轉到其他伺服器時會使用到這個標頭,意思是「該內容已經改放到這邊的伺服器了,請重新存取」 利用這個功能讓用戶端把存取對象改為最近的快取伺服器的方法就稱為「重新導向(Redirect)」
快取內容的更新方法會造成性能落差 影響快取伺服器效率的因素還有一個,就是更新快取內容的方法 改善這個問題點的方法是讓Web伺服器一有更新原始資料,就立即反映到快取上