330 likes | 341 Views
臺灣學術網路竹苗區域網路中心 89 年網路教育推廣訓練課程. Proxy Server 規劃管理. 主講人:葉致偉 交大校園網路策進會 cwyeh@ccca.nctu.edu.tw. 上路之前. 瞭解 Proxy 的運作原理和架構. 為什麼需要 Proxy ?. 節省頻寬 減少等待時間 增加安全性 頻寬的使用可以公開化、公平化 網路中斷仍可部份使用. 有什麼壞處?. 資料不一定是最正確的 設定不當反而會增加等待時間 使用不當容易造成效能下降. 基本觀念. 階層式的架構 Parent/child -- parent 要幫 child 代抓資料
E N D
臺灣學術網路竹苗區域網路中心 89年網路教育推廣訓練課程 Proxy Server 規劃管理 主講人:葉致偉 交大校園網路策進會 cwyeh@ccca.nctu.edu.tw
上路之前 瞭解Proxy的運作原理和架構
為什麼需要Proxy? • 節省頻寬 • 減少等待時間 • 增加安全性 • 頻寬的使用可以公開化、公平化 • 網路中斷仍可部份使用
有什麼壞處? • 資料不一定是最正確的 • 設定不當反而會增加等待時間 • 使用不當容易造成效能下降
基本觀念 • 階層式的架構 • Parent/child-- parent 要幫 child 代抓資料 • Siblings-- 相互支援,互通有無,不代抓資料 • 階層關係是相對的,並非絕對的
Parent/child • 通常Parent離目的地較近、較快 • 對不同的目的地可以有不同的Parent • Parent有時也可能變成Child
Siblings • Siblings彼此的地位是對等的 • Siblings之間互通有無,但是不幫忙代抓 • 詢問時送出ICP (Internet Cache Protocol)
Internet 2a 3b TANet Gateway X 2b • 163.28.xxx.yyy Proxy/caching server HD cache 1a 4b 1b PC client • TANet 區域網路使用者 Fig. 1 Proxy/caching server 運作示意圖
Proxy的效率 • Hit Rate-- By Objects/By Bytes-- 國外網頁約在 30-45% 之間-- 國內網頁約在 50-70% 之間 • Response Time-- 受硬體、網路影響較大
Proxy Server 所需的硬體 • 硬碟越快越好-- 大不一定好,搜尋時間比較重要 • 記憶體越大、越快越好 • CPU的要求並不特別高 • 網路卡要穩定
架設Proxy Server 使用 squid proxy server
規畫您的Proxy Server • 有多少使用者? • 經常存取的網頁有哪些? • 哪些時段會是尖峰時段? • 有多少預算? • 連往內部(Intranet)還是外部(Internet)? • 希望達到什麼目標?
NCTU Proxy Server 規畫 • 經常使用之節點約 6000 個 • 提供竹苗區下游單位使用 • 總流量約40Gb/day • 提供數位電子圖書館期刊專用
NCTU Proxy Server 規畫 • 三台PC Server分別負責不同區域-- Pentium II 400 MHz CPU-- 9GB UW-SCSI x 8-- 1GB RAM-- 10/100M Network Interface Card(Intel)-- FreeBSD 4.0-stable-- Squid 2.3.STABLE2
What is squid?(1) • 高效能的免費 Proxy Server • 架設在 FreeBSD、Linux、Solaris等UNIX Server 上 • 提供相當有彈性的access list 設定方式 • 提供加權的ICP設定,可以讓 Proxy 的架構更有彈性 • 本身即附有DNS Client以供查詢Domain Name
What is squid?(2) • 可以將數台 squid server 排成階層狀,也可以排成網狀 • 支援 SSL,安全不成問題 • 利用 RAM 來存放熱門資訊,減少硬碟存取次數
取得Squid軟體 • 原始站台-- ftp://ftp.squid-cache.org/(原始站)-- http://proxy.nctu.edu.tw/tech/source/ • 安裝步驟-- 參考 http://www.squid-cache.org-- FAQ -- User Guide
Squid 2.X 的組成 • Squid – 主要 Proxy 程式 • dnsserver – 外掛的 DNS 查詢程式(在 2.3-STABLE 以後改成內建) • client – 可供測試用的簡易http client • 其他管理工具
Squid-2的建置與設定 • 取得並編譯軟體% tar xvzf squid-2.3.x.src.tar.gz% cd squid-2.2-x% ./configure –prefix=/home/squid% make% make install • ./configure –help 有許多選項,可參考FAQ的2.6 有詳細的說明 • 建議值./configure –prefix=/home/squid –enable-regex –enable-delay-pools –enable-cache-digests --enable-err-language=Traditional_Chinese
Squid中標準的目錄結構 • 若以 –prefix=/home/squid 為參數,則以下目錄都在 /home/squid 下:- bin,etc,log- 主要設定檔位於 etc/ 目錄下‧squid.conf, mime.conf, mib.txt, errors/- 系統記錄檔放在 logs/ 目錄下‧access.log, cache.log,…
停止 squid server • 若有跑 RunCache,先停掉 RunCache% ps –ax |grep RunCache 找出 pid% kill $pid% bin/squid –k shutdown • 若不先停掉 RunCache, squid 會自動重生 • Squid 最好透過 squid –k shutdown 這個指令停止,不要直接砍 pid
啟動squid server • 若採用預設值不更動,則需要先建立一個 cache/ 目錄,並執行% chown –R nobody cache • 建立 cache/ 目錄下的次目錄% bin/squid –z • 執行 RunCache 以啟動 squid% bin/RunCache &
設定 squid.conf • cache_mem 建議設定為系統記憶體的1/3 • 使用 acl 和 http_access 設定proxy階層 • 參考 http://proxy.nctu.edu.tw的下游設定
程式不正常時…. • 用 tail –f access.log 觀察是否送到正確的機器 • 用 tail –f cache.log 觀察是否有錯誤訊息 • cache_dir 是否滿了? • 使用 cachemgr 來觀察系統狀況
CacheFlow Proxy 的另一種選擇
什麼是CacheFlow? • 整合性的Proxy/Cache Server • 省去硬體/作業系統維護的麻煩 • 方便的Web-based管理介面 • 減少網路延遲 • 加強的抓取網頁功能- Pipe-line 技術- Refresh 機制 • 加強的儲存系統
管理介面 • 採用http的方式更新設定檔 • 系統可以從網路上升級 • 系統log可在Web上直接看到 • 要分析詳細log要用 ftp upload 到特定機器
技術以外…. 法律相關問題
使用者隱私權問題 • 使用者公約 • 分析統計流量 • 超量使用的處理方式
參考資料 • http://www.squid-cache.org • http://proxy.nctu.edu.tw • http://proxy.nsysu.edu.tw • http://www.cacheflow.com