




已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Squid3 0 反向代理反向代理 DNS 輪詢實(shí)現(xiàn)負(fù)載均衡輪詢實(shí)現(xiàn)負(fù)載均衡 系統(tǒng)拓樸圖系統(tǒng)拓樸圖 一臺 DNS 服務(wù)器 操作系統(tǒng) Freebsd 軟件 BIND 9 5 IP 192 168 76 222 三臺 Squid 服務(wù)器 操作系統(tǒng) Linux AS 4 軟件 Squid 3 0 相應(yīng)的 IP 如下 Squid1 192 168 76 223 Squid2 192 168 76 224 Squid3 192 168 76 225 三臺 WEB 服務(wù)器 操作系統(tǒng) Linux AS 4 應(yīng)用軟件 Tomcat 5 0 Mysql 相應(yīng)的 IP 地址如下 webServer1 210 82 118 195 webServer2 192 168 76 226 webServer1 192 168 76 227 應(yīng)用軟件的安裝和配置應(yīng)用軟件的安裝和配置 配置配置 DNS 服務(wù)器服務(wù)器 軟件利用 Freebsd 自帶的 bind 9 5 然后針對該系統(tǒng)配置 bind 首先修改 bind 的配 置文件 etc namedb named conf 在文件中添加 zone type master file master 再在 etc namedb master 目錄下添加 文件 該文件的內(nèi)容如下 TTL 3600 IN SOA search root 20080807 Serial 3600 Refresh 900 Retry 3600000 Expire 3600 Minimum IN NS 1 IN PTR wenjin IN A 192 168 76 223 wenjin IN A 192 168 76 224 wenjin IN A 192 168 76 225 這樣當(dāng)用戶請求的時(shí)候 DNS 通過輪詢機(jī)制將 的域名解析為 192 168 76 223 192 168 76 224 和 192 168 76 225 其中之一 配置完成后 運(yùn)行 rndc star t 啟動(dòng) bind 服務(wù) 用 ps A grep named 查看 bind 服務(wù)是否起來 用 nslookup 測試 bind 服務(wù)是否正常運(yùn)行 配置配置 Squid1 服務(wù)器服務(wù)器 下載 squid 3 0 STABLE8 tar gz 源碼包 將其放在 home 目錄下 解壓縮 tar zxvf squid 3 0 STABLE8 tar gz 設(shè)置配置參數(shù) cd squid 3 0 STABLE10 configure prefix usr local squid 將 squid 安裝在 usr local 目錄下 編譯安裝 Make make install 安裝完以后會在 usr local 目錄下看見 squid 目錄 配置 squid 配置文件 編輯 squid conf 文件 vi usr local squid etc squid conf cache effective user squid cache effective group squid 設(shè)定 squid 的主機(jī)名 如無此項(xiàng) squid 將無法啟動(dòng) visible hostname 配置 squid 為加速模式 http port 80 accel vhost vport icp port 3130 配置 squid2 squid3 為其鄰居 當(dāng) squid1 在其緩存中沒有找到請求的資 源時(shí) 通過 ICP 查詢?nèi)テ溧従又腥〉镁彺?cache peer sibling 80 3130 cache peer sibling 80 3130 squid1 的三個(gè)父節(jié)點(diǎn) originserver 參數(shù)指明是源服務(wù)器 round robin 參數(shù) 指明 squid 通過輪詢方式將請求分發(fā)到其中一臺父節(jié)點(diǎn) squid 同時(shí)會對這些父節(jié)點(diǎn) 的健康狀態(tài)進(jìn)行檢查 如果父節(jié)點(diǎn) down 了 那么 squid 會從剩余的 origin 服務(wù)器 中抓取數(shù)據(jù) cache peer 210 82 118 195 parent 8080 0 no query originserver round robin name webServer1 cache peer 192 168 76 226 parent 8080 0 no query originserver round robin name webServer2 cache peer 192 168 76 227 parent 8080 0 no query originserver round robin name webServer3 將 域的請求通過 RR 輪詢方式轉(zhuǎn)發(fā)到三個(gè)父節(jié)點(diǎn) 中的一個(gè) cache peer domain webServer1 cache peer domain webServer2 cache peer domain webServer3 cache peer domain webServer1 webServer2 webServer3 上 面三行也可以寫成一行 下面是一些訪問控制 日志和緩存目錄的設(shè)置 acl localnet src 192 168 76 223 192 168 76 224 192 168 76 225 acl all src 0 0 0 0 0 0 0 0 http access allow all icp access allow localnet cache log usr local squid var logs cache log access log usr local squid var logs access log squid cache dir ufs usr local squid var cache 1000 16 256 對 squid 的一些優(yōu)化 maximum object size 10240 KB 能緩存的最大對象為 10M maximum object size in memory 512 KB 內(nèi)存中緩存的最大對象 512K cache mem 256 MB squid 用于緩存的內(nèi)存量 保存后 wq 退出 在 etc hosts 文件中添加 192 168 76 223 192 168 76 224 192 168 76 225 保存后 wq 退出 檢查 squid 配置文件正確與否 usr local squid sbin squid k parse reconfigure k help 可以查看 生成緩存目錄 usr local squid sbin squid z 啟動(dòng) squid usr local squid sbin squid D 配置配置 squid2 和和 squid3 服務(wù)器服務(wù)器 squid2 和 squid3 服務(wù)器的配置方法和配置參數(shù)和 squid1 一樣 配置完成后 分別啟 動(dòng)這兩個(gè)服務(wù)器上的 squid 服務(wù) 在 squid 的日志文件 cache log 中 出現(xiàn)如下日志信息則說明三臺 squid 之間成功配 置為 sibling 且配置了三個(gè)父代理 2008 11 17 10 08 47 Configuring Sibling 2008 11 17 10 08 47 Configuring Sibling 2008 11 17 10 08 47 Configuring Parent 210 82 118 195 8080 0 2008 11 17 10 08 47 Configuring Parent 192 168 76 226 8080 0 2008 11 17 10 08 47 Configuring Parent 192 168 76 227 8080 0 2008 11 17 10 08 47 Ready to serve requests 測試測試 測試之前 保證 DNS 服務(wù) 三臺 squid 服務(wù)和三臺 web 服務(wù)都正常起來 在客戶端 輸入 則正確的顯示該網(wǎng)頁 服務(wù)器端的響應(yīng)對客戶端是透 明的 客戶端不知道請求是由哪臺 WEB 服務(wù)器處理的 而且其中某臺 Squid 服務(wù)器或 WEB 服務(wù)器發(fā)生故障 也不影響服務(wù)的正常運(yùn)行 總結(jié)總結(jié) Squid 是一個(gè)開源的軟件 利用它的反向代理技術(shù)可以提高網(wǎng)站系統(tǒng)的訪問速度 本文 在真實(shí)的網(wǎng)絡(luò)環(huán)境下 利用三臺 squid 反向代理服務(wù)器加速了網(wǎng)站的性能 同時(shí)結(jié)合 DNS 輪詢技術(shù)實(shí)現(xiàn)了網(wǎng)站的負(fù)載均衡 經(jīng)過一段時(shí)間的測試和試運(yùn)行 該網(wǎng)站的訪問速度 和可用性方面都有很大的提高 從未出現(xiàn)過網(wǎng)站服務(wù)中斷情況 但 DNS 輪詢具有明顯的缺 點(diǎn) 一旦某個(gè)服務(wù)器出現(xiàn)故障 即使及時(shí)修改了 DNS 設(shè)置 還是要等待足夠的時(shí)間 刷新 時(shí)間 才能發(fā)揮作用 在此期間 保存了故障服務(wù)器地址的客戶計(jì)算機(jī)將不能正常訪問服 務(wù)器 缺點(diǎn) 第一 域名服務(wù)器是一個(gè)分布式系統(tǒng) 是按照一定的層次結(jié)構(gòu)組織的 當(dāng)用戶將域名 解析請求提交給本地的域名服務(wù)器 它會因不能直接解析而向上一級域名服務(wù)器提交 上 一級域名服務(wù)器再依次向上提交 直到 RR DNS 域名服務(wù)器把這個(gè)域名解析到其中一臺服 務(wù)器的 IP 地址 可見 從用戶到 RR DNS 間存在多臺域名服務(wù)器 而它們都會緩沖已解 析的名字到 IP 地址的映射 這會導(dǎo)致該域名服務(wù)器組下所有用戶都會訪問同一 Web 服務(wù)器 出現(xiàn)不同 Web 服務(wù)器間的負(fù)載不平衡 為了保證在域名服務(wù)器中域名到 IP 地址的映射不 被長久緩沖 RR DNS 在域名到 IP 地址的映射上設(shè)置一個(gè) TTL Time To Live 值 過了這 一段時(shí)間 域名服務(wù)器將這個(gè)映射從緩沖中淘汰 當(dāng)用戶請求 它會再向上一級域名服務(wù) 器提交請求并進(jìn)行重新映射 這就涉及到如何設(shè)置這個(gè) TTL 值 若這個(gè)值太大 在這個(gè) TTL 期間 很多請求會被映射到同一臺 Web 服務(wù)器上 同樣會導(dǎo)致負(fù)載不平衡 若這個(gè) 值太小 例如是 會導(dǎo)致本地域名服務(wù)器頻繁地向 RR DNS 提交請求 增加了域名解析 的網(wǎng)絡(luò)流量 同樣會使 RR DNS 成為系統(tǒng)中一個(gè)新的瓶頸 第二 用戶機(jī)器會緩沖從名字到 IP 地址的映射 而不受 TTL 值的影響 用戶的訪問 請求會被送到同一臺 Web 服務(wù)器上 由于用戶訪問請求的突發(fā)性和訪問方式不同 例如 有的人訪問一下就離開了 而有的人訪問可長達(dá)幾個(gè)小時(shí) 所以各臺服務(wù)器間的負(fù)載仍存 在傾斜 Skew 而不能控制 假設(shè)用戶在每個(gè)會話中平均請求數(shù)為 20 負(fù)載最大的服務(wù)器 獲得的請求數(shù)額高于各服務(wù)器平均請求數(shù)的平均比率超過百分之三十 也就是說 當(dāng) TTL 值為 0 時(shí) 因?yàn)橛脩粼L問的突發(fā)性也會存在著較嚴(yán)重的負(fù)載不平衡 第三 系統(tǒng)的可靠性和可維護(hù)性不好 若一臺服務(wù)器失效 會導(dǎo)致將域名解析到該服 務(wù)器的用戶看到服務(wù)中斷 即使用戶按 Reload 按鈕 也無濟(jì)于事 系統(tǒng)管理員也不能 隨時(shí)地將一臺服務(wù)器切出服務(wù)進(jìn)行維護(hù) 如進(jìn)行操作系統(tǒng)和應(yīng)用軟件升級 這需要修改 RR DNS 服務(wù)器中的 IP 地址列表 把該服務(wù)器的 IP 地址從中劃掉 然后等上一段時(shí)間 等所有域名服務(wù)器將該域名到這臺服務(wù)器的映射淘汰 和所有映射到這臺服務(wù)器的客戶機(jī) 不再使用該站點(diǎn)為止 如果要將此架構(gòu)環(huán)境用于實(shí)際生產(chǎn)的同志請謹(jǐn)慎考慮 優(yōu)點(diǎn) dns 相對于 lvs 或其它負(fù)載均衡策略而言也有優(yōu)勢所在 這是因?yàn)樨?fù)載均衡都是把所有 的訪問先集中到一個(gè) ip 上 因?yàn)橹挥幸粋€(gè) ip 所以無意間這個(gè) ip 的穩(wěn)定性就關(guān)系重大了 ip 穩(wěn)定性會受很多因素影響 n 個(gè)交換機(jī) 線路 機(jī)器等等 頗為復(fù)雜 而首頁很有可能 會用到異地的負(fù)載均衡 這么來不用 dns 方案就很難設(shè)計(jì)了 現(xiàn)在的常用瀏覽器和下載 軟件 都有對 dns 的故障處理機(jī)制 所以 dns 也是可以屏蔽掉一些故障的 雖然功能不強(qiáng) 但也較為實(shí)用 相比之下 即使是 lvs 也會有很多雜七雜八的問題 反而不如 dns 性能強(qiáng) 和穩(wěn)定 建議可以以此模型架構(gòu)來學(xué)習(xí) squid 反向代理原理及語法 建議采用源碼安裝 squid3 0 squid2 6 反向代理實(shí)驗(yàn)?zāi)P头聪虼韺?shí)驗(yàn)?zāi)P?作者 王斌斌 撫琴煮酒 Tool squid 2 6 STABLE6 4 el5 拓?fù)鋱D 如上圖 有兩個(gè)網(wǎng)絡(luò) 公司內(nèi)部私有網(wǎng)絡(luò) 192 168 1 0 24 Internet 外部網(wǎng)絡(luò) 10 66 0 0 24 公司內(nèi)部網(wǎng)絡(luò)有兩個(gè)服務(wù)器 Server A 提供兩種服務(wù) 端口 81 提供服務(wù) 1 端口 82 提供服務(wù) 2 Server B 提供一種服務(wù) 通過端口 80 來提供服務(wù) Squid 作為公司內(nèi)部服務(wù)器的反向代理 兩塊網(wǎng)卡 其 IP 分別是 eth0 10 66 0 80 接 Internet 外部網(wǎng)絡(luò) eth1 192 168 1 200 接公司內(nèi)部私有網(wǎng)絡(luò) Internet 外部網(wǎng)絡(luò)通過 Squid 代理服務(wù)器 訪問公司內(nèi)部服務(wù)器 例如 Client 10 66 0 174 它不能直接訪問公司內(nèi)部服務(wù)器 而是通過 Squid 訪問公司內(nèi)部服務(wù)器 外部網(wǎng)絡(luò)客戶端訪問公司內(nèi)部網(wǎng)絡(luò)服務(wù)器的流程 舉個(gè)例子 如下 首先 在 Client 端修改 etc hosts 文件 添加如下三行 10 66 0 80 www serverA www 10 66 0 80 www serverA www 10 66 0 80 www serverB com www 注 添加這三行 目的是為了讓客戶端能夠解析這三個(gè)域名 www serverA www serverA www serverB com 其對應(yīng) IP 為 10 66 0 80 squid 反向代理服務(wù)器的 IP 這里 Squid 反向代理服務(wù)器監(jiān)聽端口 8000 默認(rèn)是 3128 在客戶端 打開瀏覽器 在瀏覽器地址欄輸入 www serverA 8000 下圖顯示了 客戶端發(fā)出這個(gè)請求后 到最后收到數(shù)據(jù)的整個(gè)流程 Phase 1 這里客戶端在瀏覽器地址欄輸入 www serverA 8000 通過 Client 本地 etc hosts 解析 域名 www serverA 對應(yīng)的 IP 是 10 66 0 80 Squid 反向代理服務(wù)器 于是客戶端向 Squid 反向代理服務(wù)器端口 8000 發(fā)送請求 注 在客戶端瀏覽器地址欄輸入 www serverA 8000 和 http 10 66 0 80 8000 是不一樣的 雖然都是請求 Squid 反向代理服務(wù)器 8000 端口 但它們有本質(zhì)的區(qū)別 如 果通過 IP 方式 http 10 66 0 80 8000 訪問 Squid 服務(wù)器 則不能實(shí)現(xiàn)讓 Squid 服務(wù)器對 內(nèi)部網(wǎng)絡(luò)多個(gè)服務(wù)器作代理 此時(shí) Squid 只能將客戶端的請求向內(nèi)部網(wǎng)絡(luò)的 一個(gè) 服務(wù) 器作請求 為了實(shí)現(xiàn) Squid 能對內(nèi)部網(wǎng)絡(luò)多個(gè)服務(wù)器作代理 需要使用域名方式 例如這 里的 www serverA 8000 Squid 服務(wù)器收到這樣的請求后 它會解析 Host 是 www serverA 在 配置 Squid 時(shí) 有兩個(gè)選項(xiàng) cache peer 和 cache peer domain 這兩個(gè)配置項(xiàng)讓 Squid 有能力知道 www serverA 這個(gè)請求最終 是想訪問公司內(nèi)部網(wǎng)絡(luò)服務(wù)器 A Server A 的 81 端口 從而實(shí)現(xiàn)了 Squid 對內(nèi)部多個(gè) 服務(wù)器作代理的功能需求 關(guān)于 cache peer 和 cache peer domain 的使用見后文 Phase 2 如上所述 Squid 服務(wù)器收到客戶端發(fā)來的請求 一看是 www serverA Squid 知道接下來去請求公司內(nèi)部網(wǎng)絡(luò)服務(wù)器 A Server A 的 81 端 口 Phase 3 Server A 提供的服務(wù) 1 Service 1 監(jiān)聽端口 81 收到 Squid 發(fā)送過來的請 求 于是根據(jù)請求發(fā)送相應(yīng)數(shù)據(jù)給 Squid 服務(wù)器 Phase 4 Squid 收到服務(wù)器 A Server A 從端口 81 發(fā)送過來的數(shù)據(jù)后 會將該數(shù)據(jù) 在本地緩存 同時(shí)將數(shù)據(jù)從自己的 8000 端口發(fā)送給外部網(wǎng)絡(luò)的客戶端 上面四個(gè)步驟結(jié)束后 客戶端就會收到所希望的數(shù)據(jù) 值得說明的是 在整個(gè)過程中 公司內(nèi)部網(wǎng)絡(luò)的服務(wù)器對客戶端是透明的 即客戶端 并不知道內(nèi)部網(wǎng)絡(luò)究竟有哪些服務(wù)器 提供哪些服務(wù) 客戶端僅僅是訪問 Squid 服務(wù)器的 8000 端口 然后獲得相應(yīng)的數(shù)據(jù) 理解上面 Squid 作代理 客戶端的請求流程后 下面介紹 Squid 的一些配置項(xiàng) 注 以下內(nèi)容是 Squid 一些基本配置項(xiàng)的說明 其中重點(diǎn)解釋給多個(gè)服務(wù)器作代理所涉 及的配置項(xiàng) 需要讀者對 Squid 有一些基本的認(rèn)識 另外關(guān)于 Squid 還有很多沒提到的配 置項(xiàng) 有些配置項(xiàng)是直接影響 Squid 服務(wù)器的性能 這里不作說明 vim etc squid squid conf http port 8000 vhost Squid 服務(wù)器監(jiān)聽本機(jī) 8000 端口 vhost 支持虛擬主機(jī) cache peer 192 168 1 50 parent 81 0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北省課題申報(bào)評審書
- 婦聯(lián)調(diào)研課題申報(bào)書
- 課題申報(bào)書序號
- 節(jié)水潔具研究課題申報(bào)書
- Unit 3 Keep Fit 單元檢測練習(xí)(含答案)七年級英語下冊(人教版2024)
- 員工合同范本32條
- 學(xué)校美育工作課題申報(bào)書
- 付款保證合同范本
- 三拆除工程合同范本
- 農(nóng)村梯田出租合同范本
- 建設(shè)項(xiàng)目非重大變動(dòng)及環(huán)??尚行哉撟C報(bào)告
- 國外綠地發(fā)展-形成38課件講解
- 【MOOC】現(xiàn)代老年醫(yī)學(xué)-浙江大學(xué) 中國大學(xué)慕課MOOC答案
- 小紅書品牌博主合作合同(2024年版)
- 腫瘤內(nèi)科學(xué)(中級341)專業(yè)實(shí)踐能力衛(wèi)生專業(yè)技術(shù)資格考試試題與參考答案
- 2023年貴州省公務(wù)員錄用考試《行測》真題及答案解析
- 家族族譜模板
- 柴油機(jī)維修施工方案
- 根管治療病例分享
- 數(shù)學(xué)課后訓(xùn)練:正態(tài)分布
- DB5115-T 129-2024《油樟優(yōu)樹選擇技術(shù)規(guī)程》
評論
0/150
提交評論