歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Squid-Linux下的使用詳解

Squid-Linux下的使用詳解

日期:2017/2/25 10:39:22   编辑:Linux教程

  做為眼下最流行的操作系統,Linux已經越來越受到世人的關注。雖然目前Linux的軟件還不是很豐富,替代WINDOWS作為普通PC機操作系統還為時過早,但是在服務器領域,Linux的穩定性,可操作性決不輸於任何操作系統,並且也有優秀的軟件支持。Squid就是其中之一。Linux加Squid的組合做為代理服務器,性能遠遠超過WINNT加MSPROXY2.0(個人觀點),為幾百人的小型局域網代理綽綽有余。下面,我就詳細的介紹Squid的安裝及使用技巧,希望大家能夠喜歡上它。
  
  1.Squid簡介
  Squid是一個緩存internet數據的一個軟件,它接收用戶的下載申請,並自動處理所下載的數據。也就是說,當一個用戶象要下載一個主頁時,它向Squid發出一個申請,要Squid替它下載,然後Squid連接所申請網站並請求該主頁,接著把該主頁傳給用戶同時保留一個備份,當別的用戶申請同樣的頁面時,Squid把保存的備份立即傳給用戶,使用戶覺得速度相當快。目前,Squid 可以代理HTTP, FTP, GOPHER, SSL 和 WAIS 協議,暫不能代理POP, NNTP等協議。不過,已經有人開始修改Squid,相信不久的將來,Squid能夠代理這些協議。
  
  Squid能夠緩存任何數據嗎?不是的。象緩存信用卡帳號、可以遠方執行的scripts、經常變換的主頁等是不合適的也是不安全的。Squid可以自動的進行處理,你也可以根據自己的需要設置Squid,使之過濾掉你不想要的東西。
  
  Squid可以工作在很多的操作系統中,如AIX, Digital Unix, FreeBSD, HP-UX, Irix, Linux, NetBSD, Nextstep, SCO, Solaris,OS/2等,也有不少人在其他操作系統中重新編譯過Squid。
  
  Squid對硬件的要求是內存一定要大,不應小於128M,硬盤轉速越快越好,最好使用服務器專用SCSI硬盤,處理器要求不高,400MH以上既可。
  
  2. Squid的編譯和運行
  其實現在的Linux發行套件中基本都有已經編譯好的Squid,你所作的就是安裝它既可。如果你手頭沒有現成的編譯好的Squid或想使用最新的版本,去ftp:squid.nlanr.net下載一份,自己編譯。
  
  Squid的編譯是非常簡單的,因為它基本上是自己配置自己。最容易出現的問題是你的系統上沒有合適的編譯器,這可以通過安裝相應的編譯器解決。如果出現其他問題,你可以問一下有經驗的用戶或到相應的郵件列表尋找幫助。
  
  編譯Squid之前,最好建一個專門運行Squid的用戶和組。我就在自己的服務器上建了一個名為squid的用戶和組,用戶目錄設為/usr/local/squid。然後su為用戶squid並從squid.nlanr.net下載Squid的源文件到目錄 /usr/local/squid/src中,用如下命令進行解壓:
  
  %tar xzf squid-2.0.RELEASE-src.tar.gz
  
  %cd /usr/local/squid/src/ squid-*.*.RELEASE /
  
  %./configure
  
  %make
  
  %make install
  
  第一個命令在目錄/usr/local/squid/src中產生一個新的子目錄/squid-*.*.RELEASE/。命令./configure會自動查詢你的系統配置情況以及你系統中使用的頭文件。不加參數的./configure會把Squid安裝在目錄/usr/local/squid中,如果你想使用其他目錄,用如下命令./configure --prefix=/some/other/directory,這會把Squid安裝在目錄/some/other/directory中。
  make命令編譯Squid,make install命令安裝Squid。
  
  不出意外的話,目錄/usr/local/squid中會出現如下目錄:
  
  /bin
  
  /cache
  
  /etc
  
  /logs/
  
  /src (自己創建的)
  
  目錄/bin中含有Squid可執行程序,包括Squid本身,ftpget等。
  
  目錄/cache包含Squid緩存的數據,其中包含象/00/ /01/ /02/ 以及/03/這樣的目錄,這些目錄中還有子目錄,因為目錄多了比在一個目錄成千上萬的文件中尋找一個文件更容易,速度更快。
  
  目錄/etc中包含Squid的唯一的配置文件squid.conf。
  
  目錄/logs中包含Squid的日志。
  
  3. squid.conf文件的配置
  在安裝Squid後,在目錄/usr/local/squid /etc中會自動產生一個樣本squid.conf文件,文件中對每一個選項都有詳細的說明,用戶可以通過修改該文件以滿足不同的需要。
  
  總的來說,有如下幾個重要選項:
  
  •http_port:設定Squid監聽的端口,你最好設一個比較好記的端口號,以便在進行客戶機配置時容易記住。我的機器上端口號設的是8080。缺省為3128。
  
  •cache_mem:設定Squid占用的物理內存,根據我的經驗,cache_mem的大小不應超過你的服務器物理內存的三分之一,否則將會影響機器的總體性能。
  
  •maximum_object_size:設定Squid可以接收的最大對象的大小。Squid缺省值為4M,我自己入認為太大,你可以根據自己的需要進行設定。
  
  •cache_dir:設定緩存的位置、大小。一般看起來形式如下
  “cache_dir /usr/local/squid/cache 100 16 256”。 /usr/local/squid/cache代表緩存的位置;100代表緩存最大為100M;16和256代表一級和二級目錄數。
  
  •cache_effective_user:設定使用緩存的有效用戶。缺省為用戶nobody,如果你的系統中沒有用戶nobody,最好建一個或以非root用戶運行Squid。
  
  下面我給出一個最簡單的squid.conf文件:
  
  #squid.conf - a very basic config file for squid
  
  #Turn logging to it's lowest level
  
  debug_options ALL,1
  
  #defines a group (or Access Control List) that includes all IP addresses
  
  acl all src 0.0.0.0/0.0.0.0
  
  #define RAM used
  
  cache_mem 32M
  
  #defines the cache size
  
  cache_dir /usr/local/squid/cache 100 16 256
  
  #allow all sites to use connect to us via HTTP
  
  http_access allow all
  
  #allow all sites to use us as a sibling
  
  icp_access allow all
  
  #test the following sites to check that we are connected
  
  dns_testnames internic.net usc.edu cs.colorado.edu mit.edu yale.edu
  
  #run as the squid user
  
  cache_effective_user squid squid
  
  這個配置文件允許所有人使用Squid,創建了100M緩存,使用32M內存,在缺省位置"/usr/local/squid/cache"緩存數據,所有緩存數據以組squid和用戶squid身份保存,端口為3128。雖然這個配置很不安全,但是它已經能使用了。
  
  4. 運行Squid
  首先以root身份登陸。運行如下命令:
  
  %/usr/local/squid/bin/squid –z
  
  該命令會產生Squid所有的緩存目錄。
  
  如果你想前台執行Squid,接著執行命令:
  
  %/usr/local/squid/bin/squid -NCd1
  
  該命令正式啟動Squid。如果一切正常,你會看到一行輸出
  
  Ready to serve requests.
  
  如果想後台運行Squid,把它做為一個精靈進程,執行命令:
  
  %/usr/local/squid/bin/squid
  
  觀察Squid是否運行使用命令:
  
  % squid -k check
  
  輸出會告訴你Squid的當前狀態。
Copyright © Linux教程網 All Rights Reserved