




已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Squid3 0 反向代理反向代理 DNS 輪詢實(shí)現(xiàn)負(fù)載均衡輪詢實(shí)現(xiàn)負(fù)載均衡 系統(tǒng)拓樸圖系統(tǒng)拓樸圖 一臺(tái) DNS 服務(wù)器 操作系統(tǒng) Freebsd 軟件 BIND 9 5 IP 192 168 76 222 三臺(tái) 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 三臺(tái) 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 然后針對(duì)該系統(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)用戶請(qǐ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 測(cè)試 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 安裝完以后會(huì)在 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 在其緩存中沒有找到請(qǐng)求的資 源時(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 通過輪詢方式將請(qǐng)求分發(fā)到其中一臺(tái)父節(jié)點(diǎn) squid 同時(shí)會(huì)對(duì)這些父節(jié)點(diǎn) 的健康狀態(tài)進(jìn)行檢查 如果父節(jié)點(diǎn) down 了 那么 squid 會(huì)從剩余的 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 將 域的請(qǐng)求通過 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 對(duì) squid 的一些優(yōu)化 maximum object size 10240 KB 能緩存的最大對(duì)象為 10M maximum object size in memory 512 KB 內(nèi)存中緩存的最大對(duì)象 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)如下日志信息則說明三臺(tái) 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 測(cè)試測(cè)試 測(cè)試之前 保證 DNS 服務(wù) 三臺(tái) squid 服務(wù)和三臺(tái) web 服務(wù)都正常起來 在客戶端 輸入 則正確的顯示該網(wǎng)頁(yè) 服務(wù)器端的響應(yīng)對(duì)客戶端是透 明的 客戶端不知道請(qǐng)求是由哪臺(tái) WEB 服務(wù)器處理的 而且其中某臺(tái) Squid 服務(wù)器或 WEB 服務(wù)器發(fā)生故障 也不影響服務(wù)的正常運(yùn)行 總結(jié)總結(jié) Squid 是一個(gè)開源的軟件 利用它的反向代理技術(shù)可以提高網(wǎng)站系統(tǒng)的訪問速度 本文 在真實(shí)的網(wǎng)絡(luò)環(huán)境下 利用三臺(tái) squid 反向代理服務(wù)器加速了網(wǎng)站的性能 同時(shí)結(jié)合 DNS 輪詢技術(shù)實(shí)現(xiàn)了網(wǎng)站的負(fù)載均衡 經(jīng)過一段時(shí)間的測(cè)試和試運(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)用戶將域名 解析請(qǐng)求提交給本地的域名服務(wù)器 它會(huì)因不能直接解析而向上一級(jí)域名服務(wù)器提交 上 一級(jí)域名服務(wù)器再依次向上提交 直到 RR DNS 域名服務(wù)器把這個(gè)域名解析到其中一臺(tái)服 務(wù)器的 IP 地址 可見 從用戶到 RR DNS 間存在多臺(tái)域名服務(wù)器 而它們都會(huì)緩沖已解 析的名字到 IP 地址的映射 這會(huì)導(dǎo)致該域名服務(wù)器組下所有用戶都會(huì)訪問同一 Web 服務(wù)器 出現(xiàn)不同 Web 服務(wù)器間的負(fù)載不平衡 為了保證在域名服務(wù)器中域名到 IP 地址的映射不 被長(zhǎng)久緩沖 RR DNS 在域名到 IP 地址的映射上設(shè)置一個(gè) TTL Time To Live 值 過了這 一段時(shí)間 域名服務(wù)器將這個(gè)映射從緩沖中淘汰 當(dāng)用戶請(qǐng)求 它會(huì)再向上一級(jí)域名服務(wù) 器提交請(qǐng)求并進(jìn)行重新映射 這就涉及到如何設(shè)置這個(gè) TTL 值 若這個(gè)值太大 在這個(gè) TTL 期間 很多請(qǐng)求會(huì)被映射到同一臺(tái) Web 服務(wù)器上 同樣會(huì)導(dǎo)致負(fù)載不平衡 若這個(gè) 值太小 例如是 會(huì)導(dǎo)致本地域名服務(wù)器頻繁地向 RR DNS 提交請(qǐng)求 增加了域名解析 的網(wǎng)絡(luò)流量 同樣會(huì)使 RR DNS 成為系統(tǒng)中一個(gè)新的瓶頸 第二 用戶機(jī)器會(huì)緩沖從名字到 IP 地址的映射 而不受 TTL 值的影響 用戶的訪問 請(qǐng)求會(huì)被送到同一臺(tái) Web 服務(wù)器上 由于用戶訪問請(qǐng)求的突發(fā)性和訪問方式不同 例如 有的人訪問一下就離開了 而有的人訪問可長(zhǎng)達(dá)幾個(gè)小時(shí) 所以各臺(tái)服務(wù)器間的負(fù)載仍存 在傾斜 Skew 而不能控制 假設(shè)用戶在每個(gè)會(huì)話中平均請(qǐng)求數(shù)為 20 負(fù)載最大的服務(wù)器 獲得的請(qǐng)求數(shù)額高于各服務(wù)器平均請(qǐng)求數(shù)的平均比率超過百分之三十 也就是說 當(dāng) TTL 值為 0 時(shí) 因?yàn)橛脩粼L問的突發(fā)性也會(huì)存在著較嚴(yán)重的負(fù)載不平衡 第三 系統(tǒng)的可靠性和可維護(hù)性不好 若一臺(tái)服務(wù)器失效 會(huì)導(dǎo)致將域名解析到該服 務(wù)器的用戶看到服務(wù)中斷 即使用戶按 Reload 按鈕 也無濟(jì)于事 系統(tǒng)管理員也不能 隨時(shí)地將一臺(tái)服務(wù)器切出服務(wù)進(jìn)行維護(hù) 如進(jìn)行操作系統(tǒng)和應(yīng)用軟件升級(jí) 這需要修改 RR DNS 服務(wù)器中的 IP 地址列表 把該服務(wù)器的 IP 地址從中劃掉 然后等上一段時(shí)間 等所有域名服務(wù)器將該域名到這臺(tái)服務(wù)器的映射淘汰 和所有映射到這臺(tái)服務(wù)器的客戶機(jī) 不再使用該站點(diǎn)為止 如果要將此架構(gòu)環(huán)境用于實(shí)際生產(chǎn)的同志請(qǐng)謹(jǐn)慎考慮 優(yōu)點(diǎn) dns 相對(duì)于 lvs 或其它負(fù)載均衡策略而言也有優(yōu)勢(shì)所在 這是因?yàn)樨?fù)載均衡都是把所有 的訪問先集中到一個(gè) ip 上 因?yàn)橹挥幸粋€(gè) ip 所以無意間這個(gè) ip 的穩(wěn)定性就關(guān)系重大了 ip 穩(wěn)定性會(huì)受很多因素影響 n 個(gè)交換機(jī) 線路 機(jī)器等等 頗為復(fù)雜 而首頁(yè)很有可能 會(huì)用到異地的負(fù)載均衡 這么來不用 dns 方案就很難設(shè)計(jì)了 現(xiàn)在的常用瀏覽器和下載 軟件 都有對(duì) dns 的故障處理機(jī)制 所以 dns 也是可以屏蔽掉一些故障的 雖然功能不強(qiáng) 但也較為實(shí)用 相比之下 即使是 lvs 也會(huì)有很多雜七雜八的問題 反而不如 dns 性能強(qiáng) 和穩(wěn)定 建議可以以此模型架構(gòu)來學(xué)習(xí) squid 反向代理原理及語(yǔ)法 建議采用源碼安裝 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 其對(duì)應(yīng) IP 為 10 66 0 80 squid 反向代理服務(wù)器的 IP 這里 Squid 反向代理服務(wù)器監(jiān)聽端口 8000 默認(rèn)是 3128 在客戶端 打開瀏覽器 在瀏覽器地址欄輸入 www serverA 8000 下圖顯示了 客戶端發(fā)出這個(gè)請(qǐng)求后 到最后收到數(shù)據(jù)的整個(gè)流程 Phase 1 這里客戶端在瀏覽器地址欄輸入 www serverA 8000 通過 Client 本地 etc hosts 解析 域名 www serverA 對(duì)應(yīng)的 IP 是 10 66 0 80 Squid 反向代理服務(wù)器 于是客戶端向 Squid 反向代理服務(wù)器端口 8000 發(fā)送請(qǐng)求 注 在客戶端瀏覽器地址欄輸入 www serverA 8000 和 http 10 66 0 80 8000 是不一樣的 雖然都是請(qǐng)求 Squid 反向代理服務(wù)器 8000 端口 但它們有本質(zhì)的區(qū)別 如 果通過 IP 方式 http 10 66 0 80 8000 訪問 Squid 服務(wù)器 則不能實(shí)現(xiàn)讓 Squid 服務(wù)器對(duì) 內(nèi)部網(wǎng)絡(luò)多個(gè)服務(wù)器作代理 此時(shí) Squid 只能將客戶端的請(qǐng)求向內(nèi)部網(wǎng)絡(luò)的 一個(gè) 服務(wù) 器作請(qǐng)求 為了實(shí)現(xiàn) Squid 能對(duì)內(nèi)部網(wǎng)絡(luò)多個(gè)服務(wù)器作代理 需要使用域名方式 例如這 里的 www serverA 8000 Squid 服務(wù)器收到這樣的請(qǐng)求后 它會(huì)解析 Host 是 www serverA 在 配置 Squid 時(shí) 有兩個(gè)選項(xiàng) cache peer 和 cache peer domain 這兩個(gè)配置項(xiàng)讓 Squid 有能力知道 www serverA 這個(gè)請(qǐng)求最終 是想訪問公司內(nèi)部網(wǎng)絡(luò)服務(wù)器 A Server A 的 81 端口 從而實(shí)現(xiàn)了 Squid 對(duì)內(nèi)部多個(gè) 服務(wù)器作代理的功能需求 關(guān)于 cache peer 和 cache peer domain 的使用見后文 Phase 2 如上所述 Squid 服務(wù)器收到客戶端發(fā)來的請(qǐng)求 一看是 www serverA Squid 知道接下來去請(qǐng)求公司內(nèi)部網(wǎng)絡(luò)服務(wù)器 A Server A 的 81 端 口 Phase 3 Server A 提供的服務(wù) 1 Service 1 監(jiān)聽端口 81 收到 Squid 發(fā)送過來的請(qǐng) 求 于是根據(jù)請(qǐng)求發(fā)送相應(yīng)數(shù)據(jù)給 Squid 服務(wù)器 Phase 4 Squid 收到服務(wù)器 A Server A 從端口 81 發(fā)送過來的數(shù)據(jù)后 會(huì)將該數(shù)據(jù) 在本地緩存 同時(shí)將數(shù)據(jù)從自己的 8000 端口發(fā)送給外部網(wǎng)絡(luò)的客戶端 上面四個(gè)步驟結(jié)束后 客戶端就會(huì)收到所希望的數(shù)據(jù) 值得說明的是 在整個(gè)過程中 公司內(nèi)部網(wǎng)絡(luò)的服務(wù)器對(duì)客戶端是透明的 即客戶端 并不知道內(nèi)部網(wǎng)絡(luò)究竟有哪些服務(wù)器 提供哪些服務(wù) 客戶端僅僅是訪問 Squid 服務(wù)器的 8000 端口 然后獲得相應(yīng)的數(shù)據(jù) 理解上面 Squid 作代理 客戶端的請(qǐng)求流程后 下面介紹 Squid 的一些配置項(xiàng) 注 以下內(nèi)容是 Squid 一些基本配置項(xiàng)的說明 其中重點(diǎn)解釋給多個(gè)服務(wù)器作代理所涉 及的配置項(xiàng) 需要讀者對(duì) Squid 有一些基本的認(rèn)識(shí) 另外關(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件設(shè)計(jì)師考試難點(diǎn)解析試題及答案
- 2025年互聯(lián)網(wǎng)金融與投資理財(cái)考試試題及答案
- 企業(yè)公文格式試題及答案
- 公共政策與科技發(fā)展關(guān)系試題及答案
- 西方政治思想的多元化趨勢(shì)試題及答案
- 機(jī)電工程虛擬仿真技術(shù)試題及答案
- 擴(kuò)展思維的軟件設(shè)計(jì)師考試試題及答案
- 社會(huì)創(chuàng)新與政治改革的聯(lián)系試題及答案
- 如何在信息系統(tǒng)項(xiàng)目管理師考試中充分發(fā)揮優(yōu)勢(shì)試題及答案
- 解析機(jī)電工程項(xiàng)目管理的法律法規(guī)與試題及答案
- 裝修公司合同保密協(xié)議書
- 陜09J01 建筑用料及做法圖集
- 2019三福百貨品牌介紹51P
- 多元統(tǒng)計(jì)分析在經(jīng)濟(jì)中的應(yīng)用論文(3篇)
- 新疆維吾爾自治區(qū)建筑工程補(bǔ)充預(yù)算定額說明
- OpenStack云計(jì)算平臺(tái)實(shí)戰(zhàn)課件(完整版)
- FIDIC施工合同條件(紅皮書)
- 學(xué)前兒童語(yǔ)言教育課件精品ppt
- CATIA實(shí)用入門教程ppt課件(124頁(yè)P(yáng)PT)
- x8線切割編控系統(tǒng)使用說明書v16
- 打磨作業(yè)指導(dǎo)書
評(píng)論
0/150
提交評(píng)論