反向代理解決80端口數量問題
標題索引
問題原因
解決思路
參數分析
企業案例
問題原因
現如今公網IP地址80端口管理較為嚴格,工信部防止搭建違規違法網站,企業在使用80端口時需向運營商網站備案管理處申請備案,備案流程通過運營商才能放行80端口,在備案時需提供資料如互聯網信息安全保障責任書(負責人簽字)、域名證書復印件、公司三證合一的復印件、網站負責人的生身份等相關資料,另外不同運營商業務業務不同具體鏈路帶寬、IP地址數量和端口的放行都有所不同,如某市某運營商在100M帶寬的鏈路綁定8個公網IP地址,只允許放行一個公網IP地址的80端口,而企業因業務需求需搭建多個站點,IP地址和80端口遠遠無法支持建站的業務需求。
解決思路
主體思路為反向代理實現80端口的短缺問題(需提前與運營商做溝通,多個網站承載在一個公網IP地址之上),反向代理主流開源免費產品Apache和Nginx,從底層工作原理得知(可參考UNIX網絡編程書籍):
Apache在IO多路復用的模型中調用SELECT函數,舉例說明,當http請求進入用戶空間apache進程後,調用system call中的read函數時,apache進程優先會調用SELECT函數代理Apache相關進程或線程詢問內核空間是否完成對磁盤的read,若尚未完成時,周期性的詢問,直到完成後,apahce才會調用receform函數將內核空間執行的結果調入用戶空間進行數據報的封裝。
Nginx在IO多路復用的模型中調用EPOLL函數,舉例說明,當http請求進入用戶空間Nginx進程後,調用system call中的read函數時,Nginx進程優先調用EPOLL函數,EPOLL再次調用epoll_create
對比二者底層工作原理決定采用Nginx產品做反向代理軟件,具體解決業務邏輯拓撲圖如下:
圖1-1 反向代理業務邏輯
當用戶通過公網IP地址的80端口進入內網優先調度到方向代理服務器,反向代理服務器接收到http請求報文後,根據請求包頭中的host解析到內網虛擬服務器的web站點,服務器回包時,先轉發到代理服務器,由代理服務器再向客戶端發起響應報文。
策略分析
原理誒只
企業案例
企業需求:
1.通過一個公網IP地址的80端口搭建多個獨立站點,解決當下IP地址80端口不足問題;
2.對部分業務實現緩存業務,緩存時長依據具體業務情況進行設定時間。
邏輯拓撲,在業務邏輯拓撲的設計時,結合企業文化實現節約地址的同時也要節約造價費用等的理念,引領環保綠色數據中心從我做起。企業現階段邏輯拓撲如下:
圖1-2業務邏輯拓撲圖
配置演示:
依據業務邏輯,政務集群擁有多個站點,因此ngix代理啟用虛擬主機,在虛擬主機中啟用反向代理和緩存相關功能,實現業務邏輯的代理和緩存,具體配置如下:
[ root@centos6 ~ ]#ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:D2:CC:D9 inet addr:192.168.100.137 Bcast:192.168.100.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fed2:ccd9/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1 errors:0 dropped:0 overruns:0 frame:0 TX packets:9 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:342 (342.0 b) TX bytes:930 (930.0 b)
本文出自 “一步一印,有印為證” 博客,謝絕轉載!
反向代理解決80端口數量問題