歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> CentOS 6.4下Squid代理服務器的安裝與配置

CentOS 6.4下Squid代理服務器的安裝與配置

日期:2017/2/28 14:24:15   编辑:Linux教程

一、簡介

代理服務器英文全稱是Proxy Server,其功能就是代理網絡用戶去取得網絡信息。

Squid是一個緩存Internet 數據的軟件,其接收用戶的下載申請,並自動處理所下載的數據。當一個用戶想要下載一個主頁時,可以向Squid 發出一個申請,要Squid 代替其進行下載,然後Squid 連接所申請網站並請求該主頁,接著把該主頁傳給用戶同時保留一個備份,當別的用戶申請同樣的頁面時,Squid 把保存的備份立即傳給用戶,使用戶覺得速度相當快。Squid 可以代理HTTP、FTP、GOPHER、SSL和WAIS等協議並且Squid 可以自動地進行處理,可以根據自己的需要設置Squid,使之過濾掉不想要的東西。

1.1 工作流程

當代理服務器中客戶端需要的數據時:

a. 客戶端向代理服務器發送數據請求;

b. 代理服務器檢查自己的數據緩存;

c. 代理服務器在緩存中找到了用戶想要的數據,取出數據;

d. 代理服務器將從緩存中取得的數據返回給客戶端。

當代理服務器中沒有客戶端需要的數據時:

1. 客戶端向代理服務器發送數據請求;

2. 代理服務器檢查自己的數據緩存;

3. 代理服務器在緩存中沒有找到用戶想要的數據;

4. 代理服務器向Internet 上的遠端服務器發送數據請求;

5. 遠端服務器響應,返回相應的數據;

6. 代理服務器取得遠端服務器的數據,返回給客戶端,並保留一份到自己的數據緩存中。

Squid代理服務器工作在TCP/IP的應用層。

1.2 Squid 分類

按照代理類型的不同,可以將Squid 代理分為正向代理和反向代理,正向代理中,根據實現方式的不同,又可以分為普通代理和透明代理。

  • 普通代理:需要客戶機在浏覽器中指定代理服務器的地址、端口;
  • 透明代理:適用於企業的網關主機(共享接入Internet)中,客戶機不需要指定代理服務器地址、端口等信息,代理服務器需要設置防火牆策略將客戶機的Web訪問數據轉交給代理服務程序處理;
  • 反向代理:是指以代理服務器來接受internet上的連接請求,然後將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個服務器。

官方地址:http://www.squid-cache.org/

參考文檔:http://www.squid-cache.org/Doc/config/

配置Squid代理http和rsync http://www.linuxidc.com/Linux/2013-05/84642.htm

Squid:實現高速的Web訪問 http://www.linuxidc.com/Linux/2013-04/83512.htm

CentOS 6.2 編譯安裝Squid 配置反向代理服務器 http://www.linuxidc.com/Linux/2012-11/74529.htm

簡單配置Squid代理和反向代理 http://www.linuxidc.com/Linux/2014-04/99465.htm

CentOS 6.4下DNS+Squid+Nginx+MySQL搭建高可用Web服務器 http://www.linuxidc.com/Linux/2014-04/99984.htm

二、系統環境

操作系統:CentOS release 6.4 (Final)

Squid版本:squid-3.1.10-20.el6_5.3.x86_64

SELINUX=disabled

HTTP Service: stoped

三、安裝Squid服務

3.1 檢查squid軟件是否安裝

# rpm -qa|grep squid

3.2 如果未安裝,則使用yum 方式安裝

# yum -y install squid

3.3 設置開機自啟動

# chkconfig --level 35 squid on //在3、5級別上自動運行squid服務

四、squid服務器的配置文件說明

squid 的主配置文件是 /etc/squid/squid.conf,所有squid的設定都是在這個文件裡配置,下面我們來講解一下該文件的配置選項。

http_port 3128      //設置監聽的IP與端口號

cache_mem 64 MB      //額外提供給squid使用的內存,squid的內存總占用為 X * 10+15+“cache_mem”,其中X為squid的cache占用的容量(以GB為單位),
               //比如下面的cache大小是100M,即0.1GB,則內存總占用為0.1*10+15+64=80M,推薦大小為物理內存的1/3-1/2或更多。 maximum_object_size 4 MB   //設置squid磁盤緩存最大文件,超過4M的文件不保存到硬盤

minimum_object_size 0 KB   //設置squid磁盤緩存最小文件

maximum_object_size_in_memory 4096 KB   //設置squid內存緩存最大文件,超過4M的文件不保存到內存
cache_dir ufs /var/spool/squid 100 16 256   //定義squid的cache存放路徑 、cache目錄容量(單位M)、一級緩存目錄數量、二級緩存目錄數量 logformat combined %&gt;a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}&gt;h" %Ss:%Sh //log文件日志格式 access_log /var/log/squid/access.log combined  //log文件存放路徑和日志格式

cache_log /var/log/squid/cache.log   //設置緩存日志
logfile_rotate 60   //log輪循 60天 cache_swap_high 95  //cache目錄使用量大於95%時,開始清理舊的cache cache_swap_low 90   //cache目錄清理到90%時停止。 acl localnet src 192.168.1.0/24  //定義本地網段 http_access allow localnet  //允許本地網段使用 http_access deny all  //拒絕所有 visible_hostname squid.david.dev  //主機名 cache_mgr [email protected]  //管理員郵箱

關於ACL的知識,大家可以自行百度查閱,其他更多高級選項,請參考官方文檔:http://www.squid-cache.org/Doc/config/。

注意:squid2.0 和squid3.0的差別還是很大的,如果配置完,啟動squid不正確,請大家多多參考官方文檔的相應版本說明。

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2015-01/111236p2.htm

Copyright © Linux教程網 All Rights Reserved