• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            遨游Code Sky

            共享今天Code Sky, 共創(chuàng)明天Code Sky!

            C++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
              12 Posts :: 0 Stories :: 5 Comments :: 0 Trackbacks
            squid簡(jiǎn)介
            2008年12月11日 星期四 14:16

            簡(jiǎn)介
            普通代理
            透明代理
            反向代理
            故障處理
            一個(gè)范例
            一個(gè)限制訪問(wèn)的范例

            官方網(wǎng)站:http://www.squid-cache.org/

            相關(guān)技術(shù)網(wǎng)站:http://www.visolve.com/

            一. 代理服務(wù)簡(jiǎn)介

            返回

            1. 什么是代理服務(wù)器(Proxy Server)

                 代理服務(wù)可以代表其它計(jì)算機(jī)傳遞數(shù)據(jù)包或信息,這些數(shù)據(jù)包和信息包括網(wǎng)頁(yè)、電子郵件、多媒體文件和其它網(wǎng)絡(luò)應(yīng)用程序等。通過(guò)它的文件緩存和訪問(wèn)控制等功能,可以實(shí)現(xiàn)快速瀏覽和對(duì)用戶訪問(wèn)的有效管理。

                 Web代理服務(wù)器(通常所說(shuō)的代理服務(wù)器)是介于瀏覽器和Web服務(wù)器之間的一臺(tái)服務(wù)器,當(dāng)你通過(guò)代理服務(wù)器上網(wǎng)瀏覽時(shí),瀏覽器不是直接到Web服務(wù)器去取回網(wǎng)頁(yè)而是向代理服務(wù)器發(fā)出請(qǐng)求,由代理服務(wù)器來(lái)取回瀏覽器所需要的信息并傳送給你的瀏覽器。 而且,大部分代理服務(wù)器都具有緩沖的功能,就好象一個(gè)大的Cache,它有很大的存儲(chǔ)空間,它不斷將新取得數(shù)據(jù)儲(chǔ)存到它本機(jī)的存儲(chǔ)器上,如果瀏覽器所請(qǐng)求的數(shù)據(jù)在它本機(jī)的存儲(chǔ)器上已經(jīng)存在而且是最新的,那么它就不重新從Web服務(wù)器取數(shù)據(jù),而直接將存儲(chǔ)器上的數(shù)據(jù)傳送給用戶的瀏覽器,這樣就能顯著提高瀏覽速度和效率。

             更重要的是:代理服務(wù)器是 Internet鏈路級(jí)網(wǎng)關(guān)所提供的一種重要的安全功能,它的工作主要在開(kāi)放系統(tǒng)互聯(lián) (OSI) 模型的對(duì)話層。主要的功能有:
               
              1、連接Internet與Intranet 充當(dāng)firewall(防火墻):因?yàn)樗袃?nèi)部網(wǎng)的用戶通過(guò)代理服務(wù)器訪問(wèn)外界時(shí),只映射為一個(gè)IP地址,所以外界不能直接訪問(wèn)到內(nèi)部網(wǎng);同時(shí)可以設(shè)置 IP地址過(guò)濾,限制內(nèi)部網(wǎng)對(duì)外部的訪問(wèn)權(quán)限;另外,兩個(gè)沒(méi)有互聯(lián)的內(nèi)部網(wǎng),也可以通過(guò)第三方的代理服務(wù)器進(jìn)行互聯(lián)來(lái)交換信息。

              2、共享因特網(wǎng)連接,節(jié)省IP開(kāi)銷:如前面所講,所有用戶對(duì)外只占用一個(gè)IP,所以不必租用過(guò)多的IP地址,降低網(wǎng)絡(luò)的維護(hù)成本。這樣,局域局內(nèi)沒(méi)有與外網(wǎng)相連的眾多機(jī)器就可以通過(guò)內(nèi)網(wǎng)的一臺(tái)代理服務(wù)器連接到外網(wǎng),大大減少費(fèi)用。當(dāng)然也有它不利的一面,如許多網(wǎng)絡(luò)黑客通過(guò)這種方法隱藏自己的真實(shí)IP地址,而逃過(guò)監(jiān)視。

              3、提高訪問(wèn)速度,節(jié)約通信帶寬。而且通常代理服務(wù)器都設(shè)置一個(gè)較大的硬盤緩沖區(qū)(可能高達(dá)幾個(gè)GB或更大),當(dāng)有外界的信息通過(guò)時(shí),同時(shí)也將其保存到緩沖區(qū)中,當(dāng)其他用戶再訪問(wèn)相同的信息時(shí),則直接由緩沖區(qū)中取出信息,傳給用戶,從而達(dá)到提高訪問(wèn)速度的目的。

            2. 代理服務(wù)器的硬件需求

            代理服務(wù)器對(duì)于硬件的要求相當(dāng)?shù)母?!因?yàn)槲覀兗茉O(shè)代理服務(wù)器的目的就是希望能夠加快網(wǎng)絡(luò)的傳輸速度因此,雖然代理服務(wù)器幾乎在任何的 Linux 系統(tǒng)上面都能跑,但是代理服務(wù)器最好還是有較高的硬件配置:

            CPU 足夠好;

            RAM 足夠大,這也是很重要的一個(gè)硬件參數(shù)

            Hard Disk 最好能用 SCSI 接口的,因?yàn)樗俣扰c穩(wěn)定度都比較好!如果不能的話,那么 IDE 接口的硬盤由于目前速度也越來(lái)越快,所以使用 IDE 也沒(méi)有問(wèn)題,但是最好是『多塊硬盤』的架構(gòu),例如我總共需要 30 GB 的硬盤空間,那么最好是 10 GB 的硬盤三塊這樣的架構(gòu)較佳。 最好在架設(shè)代理服務(wù)器時(shí),將整體主機(jī)的規(guī)劃做好,并且讓代理服務(wù)器主機(jī)的服務(wù)單純一點(diǎn),最好只負(fù)責(zé)代理服務(wù)

            每顆硬盤的容量不需要太大,此外,最好將硬盤分割一下,一個(gè)分區(qū)在 2~4 GB 之間即可,因?yàn)榉痔蟮脑捹Y料的搜尋耗費(fèi)時(shí)間較長(zhǎng),但是分區(qū)太小又可能造成空間的浪費(fèi)

            cache 是放置在某個(gè)目錄下的,而最好一個(gè)目錄底下就是獨(dú)立的一個(gè)partition 。此外,由于 cache 所在的硬盤常常會(huì)有資料的存取,因此可能此一硬盤的損耗率會(huì)比較大,所以這個(gè) cache 所在的硬盤最好不要跟重要數(shù)據(jù)文件,例如 /, /etc, /usr, /home 等等重要的系統(tǒng)文件放在一起!

            也由于 cache 所在的硬盤資料存取太密集了,所以,硬盤的選擇上面需要 (1)轉(zhuǎn)速不能太低; (2)磁頭的機(jī)械臂需要可以忍受頻繁的動(dòng)作;(3)發(fā)熱量不可太大,或者可以考慮加裝硬盤用風(fēng)扇。

            網(wǎng)絡(luò)卡與網(wǎng)絡(luò)周邊最好使用 GBytes 的網(wǎng)絡(luò)卡

            3. 使用squid的好處

            squid是開(kāi)源軟件,性能優(yōu)秀。并仍在世界各地的squid開(kāi)發(fā)者的共同努力下,不斷發(fā)展。

            快速響應(yīng),減少網(wǎng)絡(luò)阻塞,Squid將遠(yuǎn)程Internet對(duì)象保存為本地拷貝。當(dāng)本地用戶再次訪問(wèn)這些對(duì)象時(shí),Squid可以直接快速地提供對(duì)這些對(duì)象的訪問(wèn),而不必再次占用帶寬訪問(wèn)遠(yuǎn)程服務(wù)器上的對(duì)象。

            增強(qiáng)訪問(wèn)控制,提高安全性??梢葬槍?duì)特定的的網(wǎng)站、用戶、網(wǎng)絡(luò)、數(shù)據(jù)類型實(shí)施訪問(wèn)控制

            squid可以工作在普通代理模式、透明代理模式各反向代理模式

            4. squid的結(jié)構(gòu)

            多個(gè)squid代理服務(wù)器可以通過(guò)icp協(xié)議相互溝通,形成樹(shù)形層次關(guān)系(父代理、兄弟代理、子代理),構(gòu)建代理服務(wù)器群。

            二. squid.conf的典型配置(普通代理)

            返回

            1. 配置

            #vi /etc/squid/squid.conf

            #http_port指令告訴squid在哪個(gè)端口偵聽(tīng)HTTP請(qǐng)求。默認(rèn)端口是3128,除下面的形式外,也可以是http_port 192.168.63.50:3128
            http_port 3128
            icp_port 3130

            #緩存目錄的設(shè)置,可以設(shè)置多個(gè)緩存目錄,語(yǔ)法為:<cache_dir> <aufs|ufs> <目錄所在> <MBytes大小> <dir1> <dir2>
            cache_dir ufs /var/spool/squid 1000 64 1024

            #下面是關(guān)于日志文件的放置目錄與文件名!
            cache_access_log /var/log/squid/access.log
            cache_log /var/log/squid/cache.log
            cache_store_log /var/log/squid/store.log
            pid_filename /var/run/squid.pid

            #關(guān)閉認(rèn)證機(jī)制,有些版本的 squid 會(huì)自動(dòng)的加入代理認(rèn)證機(jī)制,而普通情況下是不需要的,故找到包括auth_param的行,給它們加上注釋
            #auth_param basic children 5
            #auth_param basic realm Squid proxy-caching web server
            #auth_param basic credentialsttl 2 hours

            #設(shè)置squid用戶及用戶組、管理員賬號(hào)
            cache_effective_user squid
            cache_effective_group squid 
            cache_mgr youraccount@your.e.mail

            # 與內(nèi)存有關(guān)的配置:因?yàn)槲业南到y(tǒng)內(nèi)存很小,所以只給 8 MB!如果您的物理內(nèi)存很大的情況下,例如 512 MB,可以考慮加大到 64 或 128 MB。
            cache_mem 128 MB

            # 與磁盤容量有關(guān)的配置(注:下列的 90 與 95 是百分比 ),如果您的 cache_dir 所在磁盤很大時(shí),可以考慮將 4096 改成 32768 KB
            cache_swap_low 90
            cache_swap_high 95
            maximum_object_size 4096 KB

            # 與內(nèi)存保存資料有關(guān)的配置
            maximum_object_size_in_memory 8 KB

            #定義acl(訪問(wèn)控制列表), 語(yǔ)法為:acl<acl> <acl名稱> <acl類型> <配置的內(nèi)容>
            #黑體為用戶自定義部分

            acl All src 0/0 
            acl Manager proto cache_object 
            acl Localhost src 127.0.0.1/32 
            acl Safe_ports port 80 21 443 563 70 210 280 488 591 777 1025-65535 
            acl SSL_ports 443 563 
            acl CONNECT method CONNECT 
            acl MyNetwork src 192.168.0.0/16

            #利用前面定義的acl,定義訪問(wèn)控制規(guī)則
            http_access allow Manager Localhost
            http_access deny Manager
            http_access deny !Safe_ports
            http_access deny CONNECT !SSL_ports
            http_access allow MyNetwork
            http_access deny All

            #定義與其它代理服務(wù)器的關(guān)系,語(yǔ)法: <cache_peer> <主機(jī)名稱> <類別> <http_port> <icp_port> <其它參數(shù)>
            cache_peer 192.168.60.6 parent 4480 7 no-query default

            #設(shè)置與其它代理服務(wù)器的關(guān)系:
            # <cache_peer_access> <上層 Proxy > <allow|deny> <acl名稱>
            #cache_peer_access 192.168.60.6 allow aclxxx 
            #cache_peer_access 192.168.60.6 deny !aclxxx

            coredump_dir /var/spool/squid

            2. 激活squid

            1). 在開(kāi)啟squid之前,你應(yīng)該驗(yàn)證其配置文件是否正確。運(yùn)行如下命令即可:

            # squid -k parse

            假如你看不到輸出,配置文件有效,你能繼續(xù)后面的步驟。然而,如果配置文件包含錯(cuò)誤,squid會(huì)告訴你:

            2). 初始化cache目錄.即建立緩存目錄的存儲(chǔ)格式

            只需在第一次啟動(dòng)squid服務(wù)之前執(zhí)行(在初次運(yùn)行squid之前,或者無(wú)論何時(shí)你增加了新的cache_dir,你必須初始化cache目錄。)

            # squid -z

            cache目錄初始化可能花費(fèi)一些時(shí)間,依賴于cache目錄的大小和數(shù)量,以及磁盤驅(qū)動(dòng)器的速度。假如你想觀察這個(gè)過(guò)程,請(qǐng)使用-X選項(xiàng):

            # squid -zX

            3). 啟動(dòng)squid服務(wù)

            # service squid start

            假定squid安裝在/usr/local/squid目錄下,也可以

            # /usr/local/squid/sbin/squid -sD

            4). 停止squid

            最安全的停止squid的方法是使用squid -k shutdown命令:

            # squid -k shutdown

            5). 重配置運(yùn)行中的squid進(jìn)程

            在你了解了更多關(guān)于squid的知識(shí)后,你會(huì)發(fā)現(xiàn)對(duì)squid.conf文件做了許多改動(dòng)。為了讓新設(shè)置生效,你可以關(guān)閉和重啟squid,或者在squid運(yùn)行時(shí),重配置它。

            重配置運(yùn)行中的squid最好的方法是使用squid -k reconfigure命令:

            # squid -k reconfigure

            6). 滾動(dòng)日志文件

            除非你在squid.conf里禁止,squid會(huì)寫大量的日志文件。你必須周期性的滾動(dòng)日志文件,以阻止它們變得太大。squid將大量的重要信息寫入日志,假如寫不進(jìn)去了,squid會(huì)發(fā)生錯(cuò)誤并退出。為了合理控制磁盤空間消耗,在cron里使用如下命令:

            %squid -k rotate

            例如,如下任務(wù)接口在每天的早上4點(diǎn)滾動(dòng)日志:

            0 4 * * * /usr/local/squid/sbin/squid -k rotate

            該命令做兩件事。首先,它關(guān)閉當(dāng)前打開(kāi)的日志文件。然后,通過(guò)在文件名后加數(shù)字?jǐn)U展名,它重命名cache.log,store.log,和 access.log。例如,cache.log變成cache.log.0,cache.log.0變成cache.log.1,如此繼續(xù),滾動(dòng)到 logfile_rotate選項(xiàng)指定的值。

            squid僅僅保存每個(gè)日志文件的最后logfile_rotate版本。更老的版本在重命名過(guò)程中被刪除。假如你想保存更多的拷貝,你需要增加logfile_rotate限制,或者編寫腳本用于將日志文件移動(dòng)到其他位置。 請(qǐng)見(jiàn)13.7章關(guān)于滾動(dòng)日志的其他信息。

            3. 訪問(wèn)控制示例

            1) 禁止訪問(wèn)某個(gè)網(wǎng)站

            在squid配置文件中添加以下acl名稱及訪問(wèn)規(guī)則,并重新加載配置文件

            acl sina dstdomain .sina.com.cn .sina.com
            http_access deny sina

            acl sina dst 58.63.236.26 58.63.236.27 58.63.236.28 58.63.236.29 58.63.236.30 58.63.236.31 58.63.236.32 58.63.236.33 58.63.236.34 58.63.236.35 58.63.236.36 58.63.236.37 58.63.236.38 58.63.236.39 58.63.236.49 58.63.236.50
            http_access deny sina

            acl sina dst www.sina.com.cn
            http_access deny sina

            2) 禁止來(lái)自某些IP地址的訪問(wèn)

            在squid配置文件中添加以下acl名稱及訪問(wèn)規(guī)則,并重新加載配置文件

            acl zhang src 192.168.63.6/32
            http_access deny zhang

            3) 禁止在某些時(shí)段訪問(wèn)

            acl Working_hours MTWHF 08:00-17:00
            http_access allow Working_hours
            http_access deny !Working_hours

            4) 禁止某個(gè)代理客戶建立過(guò)多連接

            acl OverConnLimit maxconn 4 
            http_access deny OverConnLimit

            三. 透明代理

            返回

            讓我們現(xiàn)在來(lái)想象一個(gè)聯(lián)機(jī)狀態(tài),就是你有一整組內(nèi)部網(wǎng)絡(luò),而這個(gè)內(nèi)部網(wǎng)絡(luò)都是透過(guò) NAT 主機(jī)聯(lián)機(jī)出去的。那么我們談過(guò),就是在一個(gè)內(nèi)部網(wǎng)很大的情況下,使用 Proxy 是一個(gè)很不錯(cuò)的選擇,因?yàn)橹辽偎梢詼p輕帶寬負(fù)荷!不過(guò),遺憾的是,架設(shè) Proxy 的時(shí)候,也要使用者在瀏覽器上面設(shè)置代理!那么有沒(méi)有辦法在『使用者不需要在瀏覽器上面進(jìn)行任何配置,就可以實(shí)現(xiàn)以 Proxy 幫助使用者聯(lián)接Internet?當(dāng)然有啦!那就是 Transparent Proxy 啦!也有人翻譯成『透明代理服務(wù)器』,其原理是:

            當(dāng)使用者經(jīng)過(guò) NAT 服務(wù)器來(lái)聯(lián)機(jī)進(jìn)入 Internet 時(shí),假如使用的 Internet 協(xié)議為 80 (也就是 WWW) ,那么就將這個(gè)要求交給 Proxy 來(lái)工作,以達(dá)到代理服務(wù)器的功能。


            呵呵!也就是說(shuō),當(dāng)使用者是經(jīng)過(guò) NAT 主機(jī)聯(lián)機(jī)出去時(shí),只要讓 NAT 主機(jī)發(fā)現(xiàn)『咦!你是要去讀取 www 的資料對(duì)吧!好!那么這個(gè)動(dòng)作由 Proxy 主機(jī)幫你搞定!』如此一來(lái),使用者根本就不需要在瀏覽器上面配置 Proxy 的相關(guān)資料,因?yàn)檫@個(gè)動(dòng)作是『由 NAT 主機(jī)自己決定的』,所以只要在 NAT 主機(jī)上面配置妥當(dāng)即可,使用者不必配置任何資料呢!那么要怎么進(jìn)行呢?只要兩個(gè)步驟即可:

            1. 配置 Proxy 主機(jī):

            1) 如果是squid 2.5,需要更改squid配置文件中的下列指令:

            [root@test root]# vi /etc/squid/squid.conf 
            ! 
            httpd_accel_host virtual # 告訴web加速器,針對(duì)所有的URL

            httpd_accel_port 80 # 告訴web加速器,要監(jiān)聽(tīng)的端口是80!

            httpd_accel_with_proxy on # 這個(gè)很重要!因?yàn)榕渲?httpd_accel_host 之后, cache 的配置會(huì)自動(dòng)被終止,必須要加上這個(gè)配置為 on 之后,才能提供 cache 的功能!
            httpd_accel_uses_host_header on

            2) 如果是squid 2.6,則只需要更改squid配置文件中的一個(gè)指令:

            http_port 192.168.63.50:3128 transparent #192.168.63.50 就是squid服務(wù)器的地址

            [root@test root]# squid -k reconfigure

            2. 配置 NAT 主機(jī)的 port map :

            再來(lái)讓我們到 NAT 主機(jī)上面看看先,因?yàn)樾枰獙?80 這個(gè) port 交給 Proxy 的 3128 來(lái)幫忙協(xié)助,所以你的防火墻 script 必須要加入這一段才行: 

            #iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.62.0/24 --dport 80 -j REDIRECT --to-ports 3128

            注意一下,那個(gè) eth0 是『你的 NAT 對(duì)內(nèi)的網(wǎng)卡』,至于 192.168.62.0/24 則是你的內(nèi)部網(wǎng)域,請(qǐng)依照你的主機(jī)實(shí)際狀態(tài)來(lái)配置!這樣一來(lái),您的 client 端完全不需要進(jìn)行任何的配置,立刻就可以使用 Proxy 的好處啰

            3. 配置轉(zhuǎn)發(fā)

            #echo 1 > /proc/sys/net/ipv4/ip_forward

            或:

            #vi /etc/sysctl.conf

            net_ipv4_forword=1

            #vi /etc/sysconfig/network

            FORWARD_IPV4=yes

            #service network restart

            4. 配置客戶端

            將另外一臺(tái)計(jì)算機(jī)作為客戶機(jī)進(jìn)行測(cè)試,需要將網(wǎng)關(guān)、首選DNS服務(wù)器指向設(shè)置透明代理的服務(wù)器,清除客戶端的瀏覽器代理設(shè)置。

            四. 反向代理

            返回

            代理服務(wù)器是使用非常普遍的一種將局域網(wǎng)主機(jī)聯(lián)入互聯(lián)網(wǎng)的一種方式,使用代理上網(wǎng)可以節(jié)約緊缺的IP地址資源,而且可以阻斷外部主機(jī)對(duì)內(nèi)部主機(jī)的訪問(wèn),使內(nèi)部網(wǎng)主機(jī)免受外部網(wǎng)主機(jī)的攻擊。但是,如果想讓互聯(lián)網(wǎng)上的主機(jī)訪問(wèn)內(nèi)部網(wǎng)的主機(jī)資源(例如:Web站點(diǎn)),又想使內(nèi)部網(wǎng)主機(jī)免受外部網(wǎng)主機(jī)攻擊,一般的代理服務(wù)是不能實(shí)現(xiàn)的,需要使用反向代理來(lái)實(shí)現(xiàn)。

            什么是反向代理呢?其實(shí),反向代理也就是通常所說(shuō)的WEB服務(wù)器加速,它是一種通過(guò)在繁忙的WEB服務(wù)器和Internet之間增加一個(gè)高速的WEB緩沖服務(wù)器(即:WEB反向代理服務(wù)器)來(lái)降低實(shí)際的WEB服務(wù)器的負(fù)載。典型的結(jié)構(gòu)如下圖所示:

            Web服務(wù)器加速(反向代理)是針對(duì)Web服務(wù)器提供加速功能的。它作為代理Cache,但并不針對(duì)瀏覽器用戶,而針對(duì)一臺(tái)或多臺(tái)特定Web服務(wù)器(這也是反向代理名稱的由來(lái))。實(shí)施反向代理(如上圖所示),只要將Reverse Proxy Cache設(shè)備放置在一臺(tái)或多臺(tái)Web服務(wù)器前端即可。當(dāng)互聯(lián)網(wǎng)用戶訪問(wèn)某個(gè)WEB服務(wù)器時(shí),通過(guò)DNS服務(wù)器解析后的IP地址是Reverse Proxy Server的IP地址,而非原始Web服務(wù)器的IP地址,這時(shí)Reverse Proxy Server設(shè)備充當(dāng)Web服務(wù)器,瀏覽器可以與它連接,無(wú)需再直接與Web服務(wù)器相連。因此,大量Web服務(wù)工作量被卸載到反向代理服務(wù)上。不但能夠防止外部網(wǎng)主機(jī)直接和web服務(wù)器直接通信帶來(lái)的安全隱患,而且能夠很大程度上減輕web服務(wù)器的負(fù)擔(dān),提高訪問(wèn)速度。

            1. Squid反向代理單個(gè)后臺(tái)WEB服務(wù)器

            1) 如果WEB服務(wù)器和反向代理服務(wù)器是兩臺(tái)單獨(dú)的機(jī)器(一般的反向代理應(yīng)該有兩塊網(wǎng)卡分別連接了內(nèi)外部網(wǎng)絡(luò))。那么,應(yīng)該修改下面的內(nèi)容來(lái)設(shè)置反向代理服務(wù)。

            http_port 80 #squid監(jiān)聽(tīng)的端口
            httpd_accel_host 172.16.250.250 #內(nèi)部WEB服務(wù)器的IP地址
            httpd_accel_port 80 #WEB服務(wù)的端口號(hào)
            httpd_accel_single_host on #轉(zhuǎn)發(fā)沒(méi)有緩沖的請(qǐng)求到一臺(tái)單獨(dú)的機(jī)器,squid被設(shè)置成僅對(duì)單一的web服務(wù)器作反向代理
            httpd_accel_with_proxy on #如果希望squid既作反向代理服務(wù)器又作本地機(jī)器的上網(wǎng)代理,需要將此設(shè)為on,默認(rèn)是off
            httpd_accel_uses_host_header off #在HTTP協(xié)議1.1中,HTTP請(qǐng)求包括一個(gè)主機(jī)頭信息,指定URL的主機(jī)名或者主機(jī)的IP地址。這個(gè)選項(xiàng)可以用來(lái)完成多個(gè)后臺(tái)WEB服務(wù)器的反向代理功能。

            2) 如果WEB服務(wù)器和反向代理服務(wù)器是同一臺(tái)機(jī)器。那么,應(yīng)該設(shè)置WEB服務(wù)器的監(jiān)聽(tīng)端口為非80端口(比如:81端口)。要修改的內(nèi)容如下:

            http_port 80 #squid監(jiān)聽(tīng)的端口
            httpd_accel_host localhost #內(nèi)部WEB服務(wù)器的IP地址
            httpd_accel_port 81 #WEB服務(wù)器的端口號(hào)
            httpd_accel_single_host on
            httpd_accel_with_proxy on 
            httpd_accel_uses_host_header off

            2.Squid反向代理多個(gè)后臺(tái)WEB服務(wù)器

            我們可以用Squid反向代理多個(gè)后臺(tái)WEB服務(wù)器。例如:我們可以配置squid同時(shí)反向代理www.abc.com, www.xyz.com, www.lmn.com三個(gè)后臺(tái)WEB服務(wù)器,示意圖如下:

            Squid的配置如下:

            httpd_accel_host virtual
            httpd_accel_port 80 
            httpd_accel_single_host off 
            httpd_accel_uses_host_header on

            (注意:編譯Squid時(shí)需激活I(lǐng)nternal DNS選項(xiàng))

            然后設(shè)置設(shè)置反響代理需要的域名解析(Internet用戶通過(guò)這里解析三個(gè)網(wǎng)站的域名)如下:

            www.abc.com 202.102.240.74
            www.xyz.com 202.102.240.74
            www.lmn.com 202.102.240.74

            使三個(gè)域名都指向反向代理服務(wù)器的IP地址202.102.240.74。

            下面設(shè)置反向代理所需要的DNS入口信息(即設(shè)置內(nèi)部DNS,僅僅是squid在內(nèi)部使用,Internet用戶不可見(jiàn))。有兩種方法可以設(shè)置內(nèi)部DNS,使用內(nèi)部DNS服務(wù)器來(lái)解析或者使用/etc/hosts文件來(lái)實(shí)現(xiàn)。

            使用內(nèi)部DNS服務(wù)器的資源記錄如下:
            www.abc.com IN A 192.168.62.2
            www.xyz.com IN A 192.168.62.3
            www.lmn.com IN A 192.168.62.4

            如果使用/etc/hosts文件來(lái)實(shí)現(xiàn)內(nèi)部DNS(編譯時(shí)應(yīng)使用disable internal dns選項(xiàng)),編輯/etc/hosts文件添加如下條目: 
            192.168.62.2 www.abc.com
            192.168.62.3 www.xyz.com
            192.168.62.4 www.lmn.com

            結(jié)論:通過(guò)本文中的論述和相關(guān)實(shí)例,可以看出,反向代理方式不單是一種WEB服務(wù)器加速器,而且使也一種對(duì)外提供Web發(fā)布時(shí)使用的有效的防火墻技術(shù),使用它不但能節(jié)約緊缺的IP地址資源,加速WEB服務(wù)器的訪問(wèn)速度,而且能夠保護(hù)WEB主機(jī),因此能夠適應(yīng)多種應(yīng)用場(chǎng)合。

            五. 故障處理

            返回

            1. 如果在啟動(dòng)squid時(shí)出現(xiàn)下述信息:

            % squid -Nd1

            FATAL: Could not determine fully qualified hostname. Please set 'visible_hostname'

            則需要在squid的配置文件中設(shè)置visible_hostname,如:

            visible_hostname squid.packet-pushers.net

            2. 如果在配置squid代理后,客戶訪問(wèn)出現(xiàn)以下提示:

            ERROR
            The requested URL could not be retrieved

            While trying to retrieve the URL: http://.../

            可能需要在squid配置文件中加入以下指令:

            always_direct allow all

            六. 一個(gè)范例

            返回

            http_port 3128
            icp_port 0

            cache_mem 64 MB
            cache_swap_low 80
            cache_swap_high 85

            maximum_object_size 32000 KB

            cache_dir ufs /var/spool/squid 500 64 1024
            cache_access_log /var/log/squid/access.log
            cache_log /var/log/squid/cache.log
            cache_store_log /var/log/squid/store.log

            pid_filename /var/run/squid.pid

            acl all src 0.0.0.0/0.0.0.0
            acl alldst dst 0.0.0.0/0.0.0.0
            acl manager proto cache_object
            acl localhost src 127.0.0.1/255.255.255.255
            acl to_localhost dst 127.0.0.0/8
            acl 163 url_regex 163.com
            acl sina url_regex sina.com.cn
            acl myclient src 192.168.6.0/24

            http_access allow 163
            http_access allow sina
            http_access deny !sina
            http_access deny !163

            cache_peer 192.168.1.8 parent 8080 7 no-query default

            cache_effective_user squid
            cache_effective_group squid
            cache_mgr root@net03.org
            coredump_dir /var/spool/squid

            七. 一個(gè)限制訪問(wèn)的范例

            返回

            http_port 3128
            icp_port 0
            cache_mem 64 MB
            cache_swap_low 80
            cache_swap_high 85
            maximum_object_size 32000 KB
            cache_dir ufs /var/spool/squid 500 64 1024
            cache_access_log /var/log/squid/access.log
            cache_log /var/log/squid/cache.log
            cache_store_log /var/log/squid/store.log
            pid_filename /var/run/squid.pid
            acl all src 0.0.0.0/0.0.0.0
            acl manager proto cache_object
            acl localhost src 127.0.0.1/255.255.255.255
            acl to_localhost dst 127.0.0.0/8
            acl SSL_ports port 443 563
            acl Safe_ports port 80 # http
            acl Safe_ports port 21 # ftp
            acl Safe_ports port 443 563 # https, snews
            acl Safe_ports port 70 # gopher
            acl Safe_ports port 210 # wais
            acl Safe_ports port 1025-65535 # unregistered ports
            acl Safe_ports port 280 # http-mgmt
            acl Safe_ports port 488 # gss-http
            acl Safe_ports port 591 # filemaker
            acl Safe_ports port 777 # multiling http
            acl CONNECT method CONNECT
            acl myclient src 192.168.6.0/24
            acl 163 url_regex 163.com
            acl sina url_regex sina.com.cn
            # Only allow cachemgr access from localhost
            http_access allow manager localhost
            http_access deny manager
            # Deny requests to unknown ports
            http_access deny !Safe_ports
            # Deny CONNECT to other than SSL ports
            http_access deny CONNECT !SSL_ports

            cache_peer 192.168.1.8 parent 8080 7 no-query default

            acl ip_acl src 192.168.6.0/24
            acl time_acl time M T W H F A S 9:00-19:00
            http_access allow ip_acl time_acl

            cache_peer_access 192.168.1.8 allow 163
            cache_peer_access 192.168.1.8 deny !163
            cache_peer_access 192.168.1.8 allow sina
            cache_peer_access 192.168.1.8 deny !sina

            cache_effective_user squid
            cache_effective_group squid
            cache_mgr root@net03.org
            coredump_dir /var/spool/squid

            #acl pl800_arp arp 00:08:c7:9f:34:41
            #http_access allow pl800_arp

            posted on 2012-01-03 11:54 劉遠(yuǎn)清 閱讀(214) 評(píng)論(0)  編輯 收藏 引用 所屬分類: squid
            国产一区二区精品久久凹凸| 精品久久久久久成人AV| 久久精品亚洲AV久久久无码| 久久国产AVJUST麻豆| 久久精品国产99国产精品| 亚洲欧洲中文日韩久久AV乱码| 亚洲中文精品久久久久久不卡| 高清免费久久午夜精品| 久久人人爽人人人人片av| 色欲av伊人久久大香线蕉影院| 九九久久自然熟的香蕉图片| 国产激情久久久久影院小草| 狠狠色丁香久久婷婷综合五月| 91亚洲国产成人久久精品| 久久久无码精品亚洲日韩按摩| 亚洲欧美国产精品专区久久 | 久久免费视频6| 国产精品一久久香蕉国产线看| 国产福利电影一区二区三区久久老子无码午夜伦不 | 精品无码久久久久久国产| 欧美熟妇另类久久久久久不卡| 久久久久一级精品亚洲国产成人综合AV区 | 国产精品久久久久久五月尺| 久久免费线看线看| 久久精品一区二区国产| 久久人人爽人人爽人人av东京热| 久久激情五月丁香伊人| 久久91精品国产91久久小草| 色综合久久综合中文综合网| 亚洲AV日韩精品久久久久久| 香蕉久久夜色精品国产2020| 久久精品中文字幕一区| 91精品日韩人妻无码久久不卡| 1000部精品久久久久久久久| 亚洲AV日韩精品久久久久| 久久人人爽人人爽人人片AV不 | 少妇无套内谢久久久久| 性高湖久久久久久久久AAAAA| 久久亚洲sm情趣捆绑调教| 久久笫一福利免费导航| 亚洲午夜精品久久久久久浪潮|