<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    stone2083

    Hosts綁定新思路之HTTP代理篇

    前言

    此文摘自2011年3月22日郵件分享


    現(xiàn)狀

    平時(shí)開發(fā),測(cè)試,功能預(yù)演階段,為了能夠正常訪問應(yīng)用,需要做Hosts綁定.隨著應(yīng)用數(shù)量的不斷增多,綁定量也是急劇上升.例如最近工作平臺(tái)三期項(xiàng)目,需要綁定的環(huán)境多達(dá)44個(gè).一旦有變動(dòng),需要通知所有人員做本地Hosts的調(diào)整,維護(hù)成本那是相當(dāng)?shù)?wbr>大.

     

    用一張圖,來(lái)描述下目前我們的方案:


     

    如果站在面向?qū)ο缶幊痰慕嵌?來(lái)思考這張圖,我們會(huì)發(fā)現(xiàn).

    1.       利用客戶端本地Hosts綁定來(lái)實(shí)現(xiàn),并且客戶端數(shù)量不可控—利用客戶端解決需求,但客戶端維護(hù)不在可控范圍內(nèi)

    2.       Hosts綁定是非常不穩(wěn)定的—需求易變

     

    這樣的設(shè)計(jì),違反了”封裝變化”的設(shè)計(jì)原則,故一旦有變動(dòng),維護(hù)成本非常大.

     

    新方案思路

    按照”封裝變化”的設(shè)計(jì)原則,我們就應(yīng)該把”域名綁定”這個(gè)易變需求,進(jìn)行統(tǒng)一管理.

    看上圖,我們會(huì)發(fā)現(xiàn),DNS的職責(zé)就是做域名解析的,并且DNS管理比較可控.

    于是第一反應(yīng),我們可以使用內(nèi)部域名解析服務(wù)器來(lái)綁定這些域名.

    但是問題又來(lái)了,DNS來(lái)做測(cè)試環(huán)境域名解析,太重量級(jí)了.同一個(gè)域名,對(duì)應(yīng)測(cè)試服務(wù)器IP有多個(gè),綁定哪一個(gè)好呢?并且域名對(duì)應(yīng)IP不斷變化,IT DNS負(fù)責(zé)人不被我們累死啊? 

     

    既然DNS上做文章不可行,又需要統(tǒng)一管理的地方,那么我們只能再抽象出一個(gè)新的概念來(lái).

    同樣,我們利用一張圖,來(lái)描述下整體架構(gòu).



    與上圖相對(duì),此圖多了一個(gè)”代理服務(wù)器”的概念,即Hosts綁定動(dòng)作在此概念上完成.

    流程如下:

    1.       客戶端瀏覽器設(shè)置代理服務(wù)器,將所有請(qǐng)求發(fā)送到代理服務(wù)器上

    2.       代理服務(wù)器檢查本地Hosts綁定,如綁定則直接解析,反之進(jìn)入流程3

    3.       代理服務(wù)器通過內(nèi)部域名服務(wù)器解析域名

    4.       代理服務(wù)器發(fā)送請(qǐng)求到測(cè)試服務(wù)器上,并且將響應(yīng)內(nèi)容返回給客戶端

     

    具體嘗試性實(shí)施方案如下(在XX項(xiàng)目過程中有成功案例)

    1.       利用squid搭建代理服務(wù)器 (代理地址: 10.20.131.207:3128)

    備注:

    Squid配置介紹見附錄I

     

    2.       瀏覽器配置代理

    全局代理: 代理服務(wù)器上,直接填寫 10.20.131.207 3128

    局部代理: 通過pac實(shí)現(xiàn),選擇”使用自動(dòng)配置腳本”,腳本格式內(nèi)容如下:



    備注:

    Pac腳本詳細(xì)介紹見附錄II

    為了防止將配置工作帶給PD,銷售等,我們可以使用配置好的綠色瀏覽器提供直接使用.

    推薦一款:GreenBrowser: http://www.morequick.com/indexen.htm

     

    IE具體配置,見下圖:



    Firefox同樣支持代理和pac腳本

    Chrome需要安裝proxy switchy插件來(lái)支持.

     

    改進(jìn)方案思路

    上述的方案中,有兩個(gè)比較大的缺陷

    1.       代理服務(wù)器沒有多實(shí)例概念

    代理服務(wù)器通過hosts綁定.hosts是全局性的,意味著一臺(tái)代理服務(wù)器只能服務(wù)一組需求.而事實(shí)上,我們不同的項(xiàng)目需要的綁定都是不一樣的.

    2.       特性化需求不能滿足

    綁定全在代理服務(wù)器上做了,客戶端本地個(gè)性化需求無(wú)法支持

     

    所以,我理想中整體架構(gòu)是這樣的,見圖:


    1.       優(yōu)先查看本地hosts文件

    2.       代理服務(wù)器支持多實(shí)例部署,不同實(shí)例有不同的hosts綁定配置.

     

    目前具體實(shí)現(xiàn)方案,還在構(gòu)思中.歡迎大家提供實(shí)現(xiàn)方案思路.

     

    附錄I

    Squid權(quán)威指南(中文版): http://home.arcor.de/pangj/squid/chap01.html

    附錄II

    Pac介紹:               http://en.wikipedia.org/wiki/Proxy_auto-config

    Pac函數(shù)介紹:        http://findproxyforurl.com/pac_functions_explained.html

     

    posted on 2011-05-23 19:41 stone2083 閱讀(2340) 評(píng)論(1)  編輯  收藏 所屬分類: python

    Feedback

    # re: Hosts綁定新思路之HTTP代理篇 2011-08-23 10:57 看書網(wǎng)

    不錯(cuò),謝謝分享,學(xué)習(xí)了!!!  回復(fù)  更多評(píng)論   

    主站蜘蛛池模板: 久久亚洲国产精品一区二区| 国产婷婷成人久久Av免费高清| 亚洲一本综合久久| 免费欧洲美女牲交视频| 久久免费看黄a级毛片| 亚洲黄片手机免费观看| 亚洲欧美日韩中文高清www777| 亚洲五月激情综合图片区| 亚洲一区二区三区AV无码| 免费观看亚洲人成网站| 69成人免费视频无码专区| 1000部夫妻午夜免费| 久久久久久免费一区二区三区| 污视频网站免费观看| 亚洲欧美一区二区三区日产| 亚洲一区二区三区高清视频| 久久亚洲私人国产精品vA| 亚洲AV永久无码精品成人| 亚洲婷婷五月综合狠狠爱| 亚洲国产精品一区二区第一页免| 国产麻豆剧传媒精品国产免费| 成人免费福利电影| 成人免费午夜在线观看| 国产成人精品免费视频网页大全| 亚洲精品免费在线观看| 国产一区二区三区免费| 成全视频在线观看免费| 在线看片免费人成视频播| 东方aⅴ免费观看久久av| 99久久成人国产精品免费| 国产免费一级高清淫曰本片| 久久久免费观成人影院| 国产日韩AV免费无码一区二区三区 | 久久亚洲高清观看| 亚洲AV人无码综合在线观看| 亚洲s色大片在线观看| 亚洲欧洲免费视频| 亚洲精品美女在线观看播放| 亚洲一卡2卡4卡5卡6卡在线99| 亚洲乱码一二三四区乱码| 亚洲一区二区三区丝袜|