伺服器架設篇 - RedHat 6.1

設定代理伺服器(Proxy Server)

代理伺服器設定

最近更新時間: 2001/11/09

本文資料主要針對 RedHat 6.1 的系統進行說明,要注意的是,RedHat 6.1 與 Red Hat Enterprise Linux (RHEL) 是完全不同的東西!RedHat 6.1 在 1999 年推出,在 2000 年底就不再維護了!這部份網站更新到 2002 年,也沒有再維護過! 因此,建議您前往本站查詢最新版本的 Linux distribution 文章來閱讀,比較不會浪費時間。那為何還需要編輯 RedHat 6.1 的資料呢? 鳥哥只想要做個自己曾經撰寫過的文件內容保存而已囉! ^_^!最新文章請前往鳥站首頁查閱囉!

什麼是代理伺服器

從字面上的意義來看,代理伺服器(proxy)就是幫用戶端(就是你啦)去向目的地的機器要求用戶需求的主機,因為他是你的代理人嘛!所以,當你設定代理伺服器之後,你的所有相關的要求均會經過代理伺服器去搜尋!例如,當你設定你在 windows 的 IE 下的代理伺服器是 seednet 在南部的代理伺服器(ksproxy.seed.net.tw、port: 8080),則當你要去奇摩的網站時,奇摩的網頁資料將會先經過 ksproxy.seed.net.tw 這一部主機的存取之後,再傳送到你的 windows 中!有點像下面這個流程:
你的 Windows ---> ksproxy.seed.net.tw ---> www.kimo.com.tw
你的 Windows <--- ksproxy.seed.net.tw <-----------」
這裡請注意,通常 proxy 都會將用戶端要求的資料作一個備份在硬碟中!所以,當你要求過一次 www.kimo.com.tw 的資料後,這份網頁資料就會暫存在 ksproxy.seed.net.tw 這架 proxy 中,而暫存的時間長短是依主機的設定而定的!

多層次的代理伺服器
好了,那如果你設定了一個代理伺服器在你的 Linux 中,但是這個代理伺服器的設定中,又會設定你的代理伺服器的上層代理伺服器??此話何解?也就是說,當你的代理伺服器被要求去作某些工作的時候,他將會再透過向其他地方的代理伺服器要求,來達到你的需求,例如你的代理伺服器的上層代理伺服器是 ksproxy 這一部,則用戶端對你的 Linux 代理伺服器的要求就會變成這樣:

你的 Windows --> 你的 proxy --> ksproxy.seed.net.tw ---> www.kimo.com.tw
你的 Windows <-- 你的 proxy <-- ksproxy.seed.net.tw <-----------」
也就是說,從用戶端對你的要求到 www.kimo.com.tw 的東西,必須經過兩個 proxy 主機的存取之後,才能到你的 windows 當中!

更詳細的說明你可以看一下這裡

代理伺服器的優缺點

那代理伺服器有何優點呢?當然囉,沒有優點幹嘛架設代理伺服器?呵呵!底下說說他的優點吧:
  • 快速的存取動作:他最大的優點就是可以提供用戶端較為快速的瀏覽或者是資料的存取!咦!由剛剛的說明來看,你直接向 www.kimo.com.tw 的要求需要經過一個主機的存取動作,甚至是多個主機的存取,那理應更慢才對,為何會造成較快的情況呢?如果你仔細的看一下上面的流程,你會發現,當第一個人要求過 www.kimo.com.tw 的資料後, ksproxy.seed.net.tw 就已經保存有這份資料了,所以以後向這部 proxy 要求相同資料的用戶端,將會直接取用這份資料,而不用到 www.kimo.com.tw 去了!故,通常我們設定代理伺服器的時候,一定要找距離我們的機器最近的那一部,否則就沒有達到代理伺服器的功用了!通常快速的存取動作最明顯的大概是連去國外的網站了!這裡要強烈的建議,如果你需要連上國外的網頁,請一定使用代理伺服器,因為不但可以節省頻寬,並且速度上會快上很多很多(例如美國 EPA 網站!!)。
  • 降低網路的負荷:由於我們是項代理伺服器要求資料,如果代理伺服器內剛好有你要的資料,將會直接傳給你,則你的要求將不會到真實的那一個網頁去(除非你在 IE 內按下『重新整理』這個按鈕),而如果沒有你要求的資料,那他也會去捉一份你要的資料給你,並存下來,以後如果有與你相同需要的用戶,那他就可以直接傳送給用戶,如此當可降低網路的負荷!另外,有些企業部門會將不同目標的代理伺服器分開來,達到分流的目的!例如:proxy1主要為找尋台灣的網站,proxy2 為找國外的網站,則你的網域終將可以達到很好的分流效果,網路會比較快速喔!
  • 提供防火牆內部的電腦連上 Internet:這個是一般企業比較常用的情況!由於企業內部害怕被駭客侵入,通常會設立一些比較嚴密的防火牆,然而如此一來公司內部的電腦可能面臨無法連上 Internet 的窘境,那使用 proxy 讓你的內部電腦可以透過這一架主機的代理服務而取得 Internet 上的資訊,就是一個很好的方法啦!
  • 多層次的管道:代理伺服器可以提供多重的管道設定,例如,當你需要國內的資料時,代理伺服器將直接去捉取,而需要國外的資料時,才連到上一層的代理伺服器!如此將可達到你的需求(而不用常常在你的 IE 等瀏覽器上更改所需的代理伺服器)
但是有利就有弊,代理伺服器有何缺點呢?由於代理伺服器的設定中,通常會設定其上層代理伺服器,如果你沒有設定好,則如果你要讀取近端的網頁資料,可能會造成繞了一圈才又回到你的伺服器的情況!因此設定上需要比較小心。

哪裡有代理伺服器

如果你需要設定代理伺服器的話,底下有一些在網路上公開的代理伺服器可供參考喔! 同時這裡要補充的是,在一些私人單位的 Proxy (如 SeedNet 與 Hinet)設定中,他們僅提供給使用自家 ISP 的用戶,因此不同的 ISP 之 Proxy 設定是會不同的!

下載安裝 squid

安裝各種套件的方法主要可以分成 rpm 升級以及用來源檔(binary檔案)升級,以 rpm 方法升級是比較簡單的方法,而且以 rpm -q 的指令可以來查詢目前你的系統中的套件版本!不過由於 rpm 出來的時間會比較慢,並且不同 Linux 版本之間可能會有版本相容性的問題,所以你也可以直接以 binary 升級(就是使用 *.tar.gz 的檔案升級的方法)。要注意的是,你只要以其中一種方法升級就好了,不用重複升級喔!
下載:
目前使用最多的代理伺服器程式,大概是 squid 這一套程式了!在 Redhat 6.1 中就已經有這套軟體,只是版本比較舊(2.2.stable-4),通常我會喜歡把這一套軟體升級後才予以設定!升級的方式有兩種,一個是使用 rpm 升級,另一個則是直接使用 source code 升級,以下提供的是 squid-2.4.STABLE1-5.src.rpm 的升級方式。不過,由於 squid 在安裝的時候需要其他的附屬套件的安裝,所以還需要一些套件,這裡提供了使用 rpm 升級的所有需要的套件,你可以下載回去用用看!另外,如果你需要使用到原始碼來安裝的話,這個網站你也可以去看看!

rpm 安裝方法
我是以 RPM 程式來安裝的,安裝的附屬套件要先安裝才行,過程如下:
 

[root@tsai /root]# tar -zxvf squid-2.4.STABLE1-5.tar.gz
先解壓縮吧,這時會有一些檔案會產生出來,然後請接著執行下面的動作!

[root@tsai /root]# /bin/rpm --rebuild pam-0.74-22.src.rpm
[root@tsai /root]# /bin/rpm -ivh /usr/src/redhat/RPMS/i386/pam-0.74-22.i386.rpm
[root@tsai /root]# /bin/rpm -ivh /usr/src/redhat/RPMS/i386/pam-devel-0.74-22.i386.rpm
[root@tsai /root]# /bin/rpm --rebuild sgml-common-0.5-7.src.rpm
[root@tsai /root]# /bin/rpm --rebuild sgml-tools-1.0.9-12.src.rpm
[root@tsai /root]# /bin/rpm -ivh /usr/src/redhat/RPMS/noarch/sqml-common-0.5-7.noarch.rpm
[root@tsai /root]# /bin/rpm -Uvh --nodeps /usr/src/redhat/RPMS/i386/sqml-tools-1.0.9-12.i386.rpm
[root@tsai /root]# /bin/rpm --rebuild openjade-1.3-13.src.rpm
[root@tsai /root]# /bin/rpm -ivh /usr/src/redhat/RPMS/i386/openjade-1.3-13.i386.rpm
[root@tsai /root]# /bin/rpm --rebuild bash-2.05-8.src.rpm
[root@tsai /root]# /bin/rpm -Uvh /usr/src/redhat/RPMS/i386/bash-2.05-8.i386.rpm
[root@tsai /root]# /bin/rpm --rebuild squid.2.4.STABLE1-5.src.rpm
[root@tsai /root]# /bin/rpm -Uvh --nodeps /usr/src/redhat/RPMS/i386/squid.2.4.STABLE1-5.i386.rpm

請注意,由於有些套件有點小錯誤,所以需要強制安裝,因此有些安裝過程需要加上 --nodeps 這個參數才能安裝!!至於 --rebuild 是重新編譯的意思,若對於 rpm 不明瞭,請在往前看看以 rpm 升級的辦法一文吧!

基本上,經過上面的安裝之後,應該就可以把 squid 升級了,你可以察看一下:
 

[root@tsai /root]# rpm -q squid
squid-2.4.STABLE1-5
這樣就安裝好囉!
來源檔升級:(update 2001/11/09)
那如果你想要以最新版的 squid 來升級的話呢,要如何是好?這裡提供了目前(2001/09/xx)最新的 squid 版本 squid-2.4.STABLE2-src.tar.gz ,新版的功能是比較多的。
安裝的方法很簡單,只是你要先將 RedHat 6.1 原先的 squid 移除,然後將剛剛捉下去的檔案。整個安裝的方法,簡單的來說,有下列幾個步驟:
 
[root@tsai /root]# cp squid-2.4.STABLE2-src.tar.gz /usr/local
將檔案拷貝到 Linux 預設的本機安裝套件的目錄 /usr/local 中!

[root@tsai /root]# cd /usr/local
[root@tsai local]# tar -zxvf squid-2.4.STABLE2-src.tar.gz
這時會產生一個名為 squid-2.4.STABLE2 的目錄!
在這個目錄中有一個 INSTALL 的檔案,你可以看一下裡面的流程!

[root@tsai local]# cd squid-2.4.STABLE2
[root@tsai squid-2.4.STABL2]# ./configure --prefix=/usr/local/squid  \
--enable-icmp  --enable-async-io=40  \
--enable-err-language="Traditional_Chinese"  \
--enable-cache-digests
上面 --prefix 後面接的是 squid 即將安裝的目的目錄,
也就是說,你的這一版 squid 會安裝在 /usr/local/squid 中!
另外, --enable-async-io=40 這一個咚咚最好加上去!
會增加很多的總體效能喔!(快得不得了!)
至於 --enable-err-language-"Traditional_Chinese" 是指將錯誤訊息
以中文輸出!

[root@tsai squid-2.4.STABL2]# make 
[root@tsai squid-2.4.STABL2]# make install
上面就是在編譯及安裝啦!

這樣就安裝完畢囉!

設定代理伺服器

這裡僅提供簡單的代理伺服器的設定,如果你需要更詳細的設定的話,請到 squid 的網頁去看看吧!

需要給予設定的檔案

  • 基本上,需要給予設定的檔案只有一個,即是 squid.conf 這個檔案。要注意的是,如果你是以 rpm 安裝的,則這個檔案會放在 /etc/squid/ 中,如果你是以 binary 安裝的,那這個檔案就會放在 /usr/local/squid/conf 當中!
  • 另外,程式預設的啟動批次檔, rpm 的是 /etc/rc.d/init.d/squid 這個檔案,而 binary 則在 /usr/local/squid/bin/squid 這個檔案;
  • 而程式預設的暫存目錄在 /var/spool/squid !
    以下我將以 rpm 的檔案進行說明,當然囉, binary 的修改是一樣的,只是檔案放置的地點不一樣罷了!
確定 squid 可以正常執行
    我們先簡單修改一下 /etc/squid/squid.conf 這個檔案,讓他可以被啟動,然後再繼續往下修改!
     
  • 找到下面幾行,將註解(#)拿掉:

  •  
    http_port 3128
    icp_port 3130
    cache_mem 8 MB
    cache_dir ufs /var/spool/squid 100 16 256
    cache_access_log /var/log/squid/access.log
    cache_log /var/log/squid/cache.log
    cache_store_log /var/log/squid/store.log
  • 找到下面這行,並改成下列情況:

  • http_access deny all  ==> http_access allow all
  • 上面那一行改好之後,儲存並離開 vi ,然後執行:

  • /etc/rc.d/init.d/squid start
    或者是
    /usr/local/squid/bin/squid
    如此則 squid 應該可以正常執行了!接下來請到 IE 中,如果你是 IE 5.0 以後的版本,請到:
      『工具』->
      『Internet 選項』->
      『連線』->
      『區域網路設定』中,點選
      『使用 Proxy 伺服器』
    並在網址列輸入你的主機名稱(或者是 IP 均可),然後按確定離開!然後在 IE 中按按看網頁的設定有沒有成功,如果可以讀到網頁的話,表示 squid 可以正常的被使用了!
    雖然 squid 可以被使用,但是要讓你的 squid 實際發揮應有的能力時,你應該最少要設定一些基礎的參數的!所以請繼續往下看吧!
進階的 squid.conf 設定
在完成了上述的設定之後,你的 Proxy Server 就可以啟動了,不過,如果你想要再進一步進行設定的話,例如剛剛提過的,你想要讓 squid 的上層代理伺服器具有選擇性,以及想讓 squid 的暫存空間更大,那你就必須要再設定了,以下提供幾個不錯的網頁提供給你做為參考! 基本上,需要注意的地方主要可以分為底下幾個:
  • http_port 3128

  • 這個東西是用來設定你的 Proxy 監聽訊息的 port ,目前 proxy 通用的 port 是 3128 ,但是你也可以自行設定一個大於 1024 的 port ,例如另一個常用的 port 是 8080 這一個。不過我並不建議你修改這個 port ,因為如果你修改了之後,很有可能會造成無法連線的情況,所以還是使用預設值 3128 吧!
  • cache_peer:(相當重要的!

  • 這個就是用來設定上層代理伺服器的指令,剛剛有提過『代理伺服器可以設定多個』,而且你可以將代理伺服器分類,以我為例,因為我住台南,所以成大計中對我而言是一個很不錯的伺服器,則我如果要向上層代理伺服器要求訊息,可以指向成大計中(快很多喔!),亦即是 proxy.ncku.edu.tw 3128 這一個,請你依照你的所在地來設定你的代理伺服器吧。
    • cache_peer proxy.ncku.edu.tw parent 3128 3130
      上面的說明是,使用 proxy.ncku.edu.tw 這個主機當作 主要的(parent,就是父母的意思)上層代理伺服器,另外,如果你想要向對等的伺服器要求東西,就可以將 parent 寫成 slbling 囉!除此之外,這一個指令可以重複寫入,也就是說,你可以同時設定多個上層代理伺服器!不過這裡要向大家報告一下,如果設太多上層伺服器的話,由於資料會一層層的去要求,所以速度反而會變慢!基本上是建議大家只要設定兩個到三個左右的上層代理伺服器就好了。
      再者,3128是 squid 主要的 port ,而 3130 則是另外一個監聽的 port ,也要寫上去喔!
  • cache_peer_domain:(相當重要的!

  • 這個參數可以用來分別指定不同網域的代理伺服器,以我為例,因為常上美國 EPA 的網站,而 proxy.ncku.edu.tw 對於這個網站的讀取能力很強,另外,gate.ncku.edu.tw 這個 proxy 則對 ucar.edu 這個美國網域的讀取能力較強,那我可以使這兩個網域向不同的 proxy 索取資料:
    • cache_peer_domain proxy.ncku.edu.tw .epa.gov
    • cache_peer_domain gate.ncku.edu.tw .ucar.edu
      那你曉得了嗎?只要你在這裡分別指定不同的代理伺服器,那你自己的這個代理伺服器就自動的幫你完成你需要的資料來源了!很重要吧!
  • cache_mem 8 MB

  • 這東西與你的記憶體有關,如果你的記憶體夠大的話,這個 8 可以變大一些,例如你的記憶體有 256 MB 時,你可以設成 256*1/4 ==> 64 MB,如果你只有 64MB,而且主機還有其他用途,那使用預設的 8 MB 就好了。
  • cache_dir ufs /var/spool/squid 100 16 256:(update 2001/11/09)

  • 這個指令就是限制暫存區大小的地方啦,上面的說明是:暫存區目錄為 /var/spool/squid ,而暫存空間大小為 100M , 在這個暫存目錄下有 16 個目錄,而每個目錄中又有 256 個目錄(你可以實際進入 /var/spool/squid 當中去看看)。如果你要改變暫存檔目錄及這個目錄的大小時,可以在這裡修改!不建議修改 16, 256 這兩個數值。另外,通常,如果是我們一般小型的區網(不超過10個人),那設定個  500 應該夠了,如果你的硬碟夠大,設定成 1000 以上更好。修改過這個指令後,要再重新啟動 squid 之前,請先使用下面的指令來使你的目錄可以進行存取的動作,否則你的 squid 是不會工作的!例如你將上面的參數修改成:
      cache_dir ufs /var/spool/squid 1000 16 256
    然後再進行下面的指令:
      rm -rf /var/spool/squid
      mkdir /var/spool/squid
      chown squid:squid /var/spool/squid
      /usr/sbin/squid -z
    這樣你的squid暫存目錄就可以使用囉!
    另外,如果你剛剛在安裝的時候有將 --enable-async-io=40 這一個加進來的話,將可以增加 aufs 這一個磁碟的用途!這個東西可真是好呀!可以將你的硬碟發揮到最極限的速度喔!雖然在 squid.conf 檔案中有提及,這個 type 可能會有 bug 存在,不過,據鳥哥的使用結果,發現,沒啥大問題!好用的很!所以,你可以將上面的咚咚改成下面的樣子:
      cache_dir aufs /var/spool/squid 1000 16 256
  • acl 與 http_access

  • 這兩個檔案是相互輝映的,例如:如果你只要將這個 Proxy 開放給內部網路 192.168.1.XXX 用的話,你可以增加這三行:
    • acl insidenet src 192.168.1.0/255.255.255.0 (insidenet 只是一個代號,你可以任意設定,但須與底下的相同名稱。而 src 代表後面接的是 IP 的意思,而後面的 IP(255.255.255.0) 表示 192.168.1.0~192.168.1.255 均為此設定中!)
    • http_access deny all(關於 proxy 全部的服務均取消)
    • http_access allow insidenet localhost(僅開放 Proxy 給 insidenet 及 localhost 兩個網域使用)
  • cache_mgr root

  • 當 squid 有問題的時候,要聯絡誰?通常我都將 root 改成我自己的 ID ,如此才能在其他的機器上收到信!
    • cache_mgr vbird@tsai.adsldns.org
  • acl 與 always_direct:(很重要

  • 這個就是是否需要直接去讀取你要的網頁,而不要透過上層代理伺服器的指令(重要)。例如:我們不需要在台灣地區的學術網路還透過上層代理伺服器的話,可以寫入這兩行:
    • acl Taiwan-net dstdomain .edu.tw(就是設定網址,其中 dstdomain 後面接的就是網址,網址的型態亦可僅寫成 .tw 即可)
    • always_direct allow Taiwan-net(這個網址的網頁,直接由我們這個 Proxy 去捉,而不透過上層 Proxy)
  • acl 與 never_direct

  • 這個就是不要直接去取得資料的設定處,例如我們常去的美國環保署網站,我們希望關於這個網頁的資料一定由上層 Proxy 去捉取,則可以這樣設定:
    • acl usepa dstdomain .epa.gov
    • never_direct allow usepa
    上面這個 always_direct 與 never_direct 的設定可以是多重的,你可以多寫入幾個對應的網址,去定義你的上層 Proxy 的工作路徑!
  • prefer_direct off

  • 上面這個選項一定要設定為 off ,不然的話你的 squid 將會嘗試直接到網站去捉資料,而不會透過上層 proxy 喔!
  • 重新啟動:

  • 設定完成之後,最重要的就是重新啟動了,你可以這樣來啟動:
    • /etc/rc.d/init.d/squid restart
    • /usr/local/squid/bin/squid -k reconfigure
  • 特別需要注意的地方:基本上這樣的 squid 設定應該能滿足你的需求了,如果你的上層代理伺服器設定妥當的話,那你應該會感受到代理伺服器帶給你的網路連線速度上的快樂喔!不過有些地方還是需要注意一下的:
    1. 目前作為代理伺服器的主機,大都由於頻寬的問題,所以會限制連線上來的使用者,就是上面的 http_access 這個參數的設定值,因此,你應該針對你所在的網域去調查你的上層代理伺服器,若可能的話,可以提出申請,請管理員幫你開啟使用,否則對 squid 是不會有幫助的!
    2. 在 acl 後面接了代號及 dstdomain 之後,如果你要接一個網域的話,請在前面加 . 例如美國環保署的網站(不論是 www 或其他)就要寫成 .epa.gov 而不是 epa.gov(先前我搞錯了!向大家對不起!),這樣一來,不論 www.epa.gov 或 adb.epa.gov 才會經過你的上層 proxy 喔!
    3. 請依照你實際的需求來設定 acl 與 never_direct 與 always_direct ,例如你人在台灣,那幾乎所有 com.tw 的網站都不用透過 proxy 也可以捉得很好!反而透過 proxy 會變慢哩,同樣的,如果是學術網路的話,就直接把 .edu.tw 加入到 always_direct 當中吧!
    4. 也需要注意一下 cache_peer_domain 用來分流的方法喔!
設定的幾個範例
這裡有幾個設定的範例可以參考一下:

Windows 內的設定

以下使用 IE 作為說明,如果是 Netcape 的話,基本上的設定是相同的:
  • 開啟 IE ,然後在『工具』內選擇『Internet 選項』:
  • 在開啟的視窗內選擇『連線』並點選下方的『區域網路設定』:
  • 在新的框框中,填入你所需要的 Proxy 的網址或者是 IP 均可,而 port 則需視你的代理伺服器而定,以我為例,我都是使用 192.168.1.2 作為我的主機(NAT、Proxy、Web 都是同一台機器),而 port 也僅是設定為通用的 3128 ,所以如下方設定即可,當然,如果你是在南部的 seednet 用戶,或者可以填入 ksproxy.seed.net.tw,port 則填入 8080 即可。
  • 另外,你也可以在 IE 中直接設定你要直接去捉取的網頁名稱,點選上個圖的 『進階』 那一項,在出現的框框的最底下,可以填入你不想透過 Proxy 捉取的網站網址!
如此一來則設定好了 Proxy Server 囉!

squid 的注意事項(增進 proxy 效能的方法)(update 2001/11/09)

使用代理伺服器後,瀏覽國外的網頁應該是可以變快的!但是,你要小心幾件事:
  1. 若 squid 內設定的使用空間滿了,則 squid 將不會運作!
  2. 若 squid 的紀錄檔太大了,則工作效率會變慢!
如上所述,由於 squid 可能會讓你的硬碟空間飽和(尤其我們都是使用舊電腦,硬碟容量本來就不是很足夠),如果每隔幾個月就要去清理硬碟一次,那可能會造成人力的浪費,這個時候,使用例行性的工作就是個好方法啦!
  • 刪除記錄檔的方法

  • 基本上,記錄檔不需要保存太久的時間,你可以在 /etc/cron.daily 這個目錄中增加一個檔案(檔名隨便取都可以),假設檔名為 system_do.sh,則在這個檔案中,你可以增加這一行:
     
    /usr/sbin/squid -k rotate  <==/usr/sbin/squid 這個路徑要指向你的 squid 執行檔
    這個方法在使你的紀錄檔可以被轉成備份檔案!而且每天都更新備份,不過,你必須將 system_do.sh 這個檔案更改成可執行檔,例如: chmod 700 system_do.sh

    然後在你的 /etc/cron.weekly 目錄中,也增加一個檔案,裡頭也增加一行:
     

    rm -rf /var/log/squid/*.gz 
    同樣的做成可執行檔,如此,則每個禮拜系統可將你的備份檔案殺掉囉!
  • 刪除記錄目錄的方法

  • 同樣的,你可以在每個月清理一次你的暫存目錄,你可以將你的 /etc/cron.monthly 裡面增加一個檔案,增加下面這幾行:
     
      echo Now, restart Proxy Service
      /etc/rc.d/init.d/./squid stop
      echo removing directory "/var/spool/squid"
      rm -rf /var/spool/squid  <==與你的暫存目錄設定有關
      echo recreated directory "/var/spool/squid"
      mkdir /var/spool/squid   <==與你的暫存目錄設定有關
      echo chang owner to squid
      chown squid:squid /var/spool/squid
      echo recreated swap directory, using /usr/sbin/squid
      /usr/sbin/squid -z
      echo starting proxy server!
      /etc/rc.d/init.d/squid start
    則每個月系統會自動的將 squid 暫存於 /var/spool/squid 的資料全部殺掉,再重新建造一個新的目錄,另外,將目錄改變成 squid 所有(避免不能讀寫的情況!)之後,啟動這個暫存目錄的格式化(squid -z),最後再重新啟動!如此則不需害怕暫存目錄會被吃光光了!
  • 增加 proxy 效能的方法
    1. 關於上層代理伺服器:用 cache_peer 設定上層代理伺服器的數目不要太多,只要 2-5 個之間就好了,而且上層代理伺服器一定要找距離你最近,並且具有較大頻寬的主機,如果是在台南,那 proxy.ncku.edu.tw 就是不錯的主機;
    2. 關於暫存目錄的設定:以 cache_dir ufs 設定的目錄,最好是單獨割出來的約 1-2 GB 的硬碟槽,以我為例,我將另外一台主機的 30GB 的硬碟割兩槽給 proxy 用,而每一槽只有 2GB ,分別命名為 proxy1 與 proxy2 ,則可以寫成

    3. cache_dir ufs /proxy1 2000 16 256
      cache_dir ufs /proxy2 2000 16 256
      由於分成兩槽來存取,所以整體效率上會比較好,但這是針對一般比較大型的代理伺服器的設定了,我們這個小主機就不用如此設定(但是效率真的有差哩!)。
    4. 善用 acl, always_direct, never_direct:就如同上面提到的,因為你的目的不同,所以會使用到不同的 proxy 作為你的上層代理伺服器,如果你發現你的上層代理伺服器無法針對你常上的網站來求取資料時,就將那個網站加入你的 always_direct 吧!另外,也可以使用 cache_peer_domain 來處理喔!
    5. 在 ./configure 的時候增加 --enable-async-io=40 這一個指令:基本上,增加這個指令之後,將可以使您的磁碟多一個 type ,亦即是 aufs ,這個 type 的速度較快!
修改歷史:
2002/01/01以來統計人數
其他連結
環境工程模式篇
鳥園討論區
鳥哥舊站

今日 人數統計
昨日 人數統計
本月 人數統計
上月 人數統計