筆者單位組織架構進行了調整,總部直接管理三級單位,取消了中間的二級單位。
與此同時,為了解決組織架構扁平化給總部帶來的管理難題,單位決定新上一套管理信息系統,該系統采用了B/S架構,服務器架設在總部,各三級單位通過內網直接訪問服務器。
但目前單位的網絡存在著一個問題:該內網是VPN專網,VPN設備配置為按層級聯通,即三級單位只能與二級單位通訊 ,二級單位只能與總部通訊。要部署新的管理信息系統,必須解決三級單位與總部的通訊問題。
最好的解決方法是調整VPN設備的設置,各三級單位直接和總部聯通。但經測試后,發(fā)現該VPN設備性能有問題,當總部連接的VPN設備達到一定數量時,會出現各種網絡中斷問題,這種方法不可行。
還有一個辦法就是更換VPN設備,但需要大量的經費,而且也不是短時間能解決的。
為解決燃眉之急,筆者想到了既然改變目前的網絡架構不可行,那能否在二級單位對三級單位的通信進行中轉,間接實現三級單位對總部的通訊。
基于這個想法,經研究,筆者在二級單位的服務器上安裝代理服務器軟件,各三級單位通過代理服務器訪問總部,成功的解決了問題。
代理服務器(Proxy Server)是介于瀏覽器和Web服務器之間的一臺服務器。其功能就是代理網絡用戶取得網絡信息,也就是說它是網絡信息的中轉站。
代理服務器主要有三個作用:充當防火墻、節(jié)省IP地址和提高訪問速度。
在本案例中,主要應用代理服務器的防火墻和提高速度的功能,通過代理服務器,將三級單位的IP地址映射為二級單位的IP地址,從而繞開了VPN設備的限制。而且經過代理服務器緩存后,降低了總部服務器的負載,提高了三級單位的訪問速度。
常見代理服務器主要有以下類型:HTTP代理、FTP代理、POP3代理、SOCKS代理。
在本案例中,新上線的信息系統是標準的WEB應用,使用HTTP代理和SOCKS代理都可以達到目的,HTTP代理配置簡單,SOCKS代理有性能優(yōu)勢,考慮到用戶端的配置難度,本案例選擇了HTTP代理。
常用的代理服務器軟件有國外的 Squid、Sygate、WinGate,國內的CCproxy等。這些軟件都支持HTTP代理,能滿足需求,考慮到軟件版權問題,選用了開源代理服務器軟件Squid。
Squid是一款高性能的代理服務器軟件,很多商業(yè)版本的代理服務器都是基于Squid進行開發(fā)的。Squid支持正向代理、反向代理等代理模式,支持HTTP、FTP和SSL等協議。Squid官方版只支持Unix/Linux,但一些愛好者提供了Windows的版本,擴大了應用面。
下面就以Squid 2.7 For Windows為例介紹Squid 的簡單設置。Squid 2.7 For Windows是Squid常用的穩(wěn)定版本,最新的STABLE8版本發(fā)布于2010年3月,支持從Windows NT 4.0到Windows 2008 Server等版本的操作系統。具體安裝配置方法如下:
從http://squid.acmeconsulting.it/download/squid-2.7.STABLE8-bin.zip下載Squid安裝包,然后將安裝包解壓至C盤根目錄。
注意,Squid的默認安裝目錄是C:squid,最好不要更改這個目錄,不然要大量修改配置文件,比較麻煩。
進入C:squidetc文件夾,這個文件夾存放squid的配置文件。復制squid.conf.default并重命名為 squid.conf,復 制 mime.conf.default重命名為mime.conf,復制 cachemgr.conf.default并重命名為cachemgr.conf。
圖1 “連接”選項卡
使用記事本打開squid.conf修改相關配置。squid.conf采用了常用的Linux配置方式,每一行從配置指令開始,后面跟著數值或關鍵字。該文件中包含了大量以#開頭的注釋。
注意,和windows下的習慣不一樣,squid.conf中的內容是大小寫敏感的。
使用查找功能查找http_access deny all行,修改為http_access allow all。此行定義允許所有IP地址的用戶通過squid訪問HTTP端口,此處為方便開放了所有地址,為提高安全等級,可以定義詳細的訪問控制策略。
其他用缺省值,保存文件。
進入命令行cmd窗口,進入C:squidsbin目錄,運行以下命令。
C:squidsbin>squid-z
此命令生成緩存目錄,此命令只需運行一次,下次啟動squid時不用運行。
C:squidsbin>squid-k parse
此命令分析squid.conf,如有配置錯誤,則會提示錯誤,如果沒有錯誤信息則說明配置文件無誤,可以啟動squid。
C:squidsbin>squid-d1
以調試模式運行squid,如在輸出的信息中看到Ready to serve requests,說明服務運行正常。
現在squid已經可以提供服務了。下面以Internet Explore 8瀏覽器為例進行配置,其他瀏覽器可以參考此設置。
打 開IE8菜 單“工具-->Internet選項”彈出Internet選項配置窗口,選擇“連接”選項卡,如圖1。
點擊“局域網設置”,彈出“局域網(LAN)設置”窗口,如圖2。地址處輸入代理服務器地址,端口為squid默認的3128。如果要設置訪問本地地址的服務器時不使用代理服務器,選中“跳過本地地址的代理服務器”,然后“高級”中具體配置即可。
以上的配置只是squid的簡單應用,僅供測試用。如果正式部署使用,還應在squid.conf中修改一些配置,設置緩存大小,緩存目錄、日志目錄等參數。具體如下:
1.為防止C盤空間不足,影響windows運行,將緩存文件和日志文件存放到C盤以外的其他磁盤。本案例建立d:squidvar目錄,在var目錄下建立logs和cache目錄,其中l(wèi)ogs目錄用于存放日志,cache目錄用于存放硬盤緩存數據。
2.查找# cache_mem 8 MB,修改為 cache_mem 1024 MB。此行定義緩存Squid使用1G內存作為緩存,該參數應在內存允許的情況下盡量地設置的大一些以提高代理服務器性能。
圖2 “局域網(LAN)設置”窗口
此行設置cache_dir地址和磁盤緩存參數,第一個數字參數不能小于cache_mem設置的大小,否則運行squid-z時會有警告信息“WARNING cache_mem is larger than total disk cache space!”。
ufs是squid的一種存儲格式,d:/squid/var/cache是緩存目錄,2048表示使用2G磁盤空間作為緩存,16,256表示第一級和第二級目錄的數量。
如果修改了此行參數需運行squid-z來重新生成緩存目錄。
此行設置客戶端訪問代理服務器的日志文件為d:/squid/var/logs/access.log,日志格式為squid。該日志記錄了代理服務器的活動情況,包含所有的HTTP或者ICP請求。
此行設置緩存狀態(tài)日志文件為d:/squid/var/logs/cache.log。
此行設置存儲緩沖對象的狀態(tài)日志文件為d:/squid/var/logs/store.log。
7.在Windows下,可將squid安裝為服務,啟動自動運行命令:
9.Squid自帶客戶端管理工具,可查看squid服務器的詳細運行信息和管理squid服務器,在維護中有很大的作用,常見命令為:C:squidin>squidclient mgr:info
此命令可查看Squid運行狀態(tài)信息
此命令可查看Squid內存使用情況
此命令可以清除某個指定url的緩存。