squid高速緩存服務器的的介紹和配置

1:squid 是什麼?

Squid cache(簡稱爲Squid)是一個流行的自由軟件(GNU通用公共許可證)的代理服務器和Web緩存服務器。Squid有廣泛的用途,從作爲網頁服務器的前置cache服務器緩存相關請求來提高Web服務器的速度,到爲一組人共享網絡資源而緩存萬維網,域名系統和其他網絡搜索,到通過過濾流量幫助網絡安全,到局域網通過代理上網。Squid主要設計用於在Unix一類系統運行。

Squid的發展歷史相當悠久,功能也相當完善。除了HTTP外,對於FTP與HTTPS的支援也相當好,在3.0 測試版中也支援了IPv6。

2:作用

1:通過緩存爲用戶提供web頁面的加速
2:通過web訪問進行過濾控制

3:分類

正向代理

a. 標準的代理緩衝服務器

  一個標準的代理緩衝服務被用於緩存靜態的網頁(例如:html文件和圖片文件等)到本地網絡上的一臺主機上(即代理服務器)。當被緩存的頁面被第二次訪問的時候,瀏覽器將直接從本地代理服務器那裏獲取請求數據而不再向原web站點請求數據。這樣就節省了寶貴的網絡帶寬,而且提高了訪問速度。但是,要想實現這種方式,必須在每一個內部主機的瀏覽器上明確指明代理服務器的IP地址和端口號。客戶端上網時,每次都把請求送給代理服務器處理,代理服務器根據請求確定是否連接到遠程web服務器獲取數據。如果在本地緩衝區有目標文件,則直接將文件傳給用戶即可。如果沒有的話則先取回文件,先在本地保存一份緩衝,然後將文件發給客戶端瀏覽器。

 b. 透明代理緩衝服務器

  透明代理緩衝服務和標準代理服務器的功能完全相同。但是,代理操作對客戶端的瀏覽器是透明的(即不需指明代理服務器的IP和端口)。透明代理服務器阻斷網絡通信,並且過濾出訪問外部的HTTP(80端口)流量。如果客戶端的請求在本地有緩衝則將緩衝的數據直接發給用戶,如果在本地沒有緩衝則向遠程web服務器發出請求,其餘操作和標準的代理服務器完全相同。對於Linux操作系統來說,透明代理使用Iptables或者Ipchains實現。因爲不需要對瀏覽器作任何設置,所以,透明代理對於ISP(Internet服務器提供商)特別有用。

反向代理:

 a. 反向代理緩衝服務器

  反向代理是和前兩種代理完全不同的一種代理服務。使用它可以降低原始WEB服務器的負載。反向代理服務器承擔了對原始WEB服務器的靜態頁面的請求,防止原始服務器過載。它位於本地WEB服務器和Internet之間,處理所有對WEB服務器的請求,組織了WEB服務器和Internet的直接通信。如果互聯網用戶請求的頁面在代理服務器上有緩衝的話,代理服務器直接將緩衝內容發送給用戶。如果沒有緩衝則先向WEB服務器發出請求,取回數據,本地緩存後再發送給用戶。這種方式通過降低了向WEB服務器的請求數從而降低了WEB服務器的負載。

四:配置介紹

     服務名:squid
     主程序:/usr/sbin/squid
     配置目錄:/etc/squid

     主配文件:/etc/squid/squid.conf

     監聽tcp端口號:3128

     默認訪問日誌文件:/var/log/squid/access.log

     http_port 3128 (還可以監聽一個一個ip  http_port 172.25.254.1:3128)

     cache_mem 64MB         #緩存佔內存大小

     maximum_object_size 4096KB            #最大緩存塊

     reply_body_max_size  1024000 allow all  #限定下載文件大小
    visible_hostname  proxy.test.xom  #可見的主機名

         cache_dir ufs /var/spool/squid 100 16 256

                usf:緩存數據的存儲格式

                /var/spool/squid 緩存目錄

                100 : 緩存目錄佔磁盤空間大小(M)

                16 :緩存空間一級子目錄個數

                256 :緩存空間二級子目錄個數

        cache_mgr  webmaster@test.com   #定義管理員郵箱

        http_access deny all   #訪問控制

五:正向代理的配置

5.1環境

centos7
服務器:ip1:172.25.254.120
ip2:172.25.20.2
客戶端:ip:172.25.20.1

centos7
服務器:ip1:172.25.254.120
ip2:172.25.20.2
客戶端:ip:172.25.20.1
5.2目的

在服務器端配置squid,使得客戶端可以訪問到172.25.254.0/24網段的內容

5.3服務端
[root@mailzpy ~]# ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.25.254.120  netmask 255.255.255.0  broadcast 172.25.254.255
        inet6 fe80::5054:ff:fe00:140a  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:00:14:0a  txqueuelen 1000  (Ethernet)
        RX packets 50215  bytes 25839964 (24.6 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 46678  bytes 105106263 (100.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.25.20.2  netmask 255.255.255.0  broadcast 172.25.20.255
        inet6 fe80::5054:ff:fe0a:190f  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:0a:19:0f  txqueuelen 1000  (Ethernet)
        RX packets 6905  bytes 744616 (727.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 77  bytes 11440 (11.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@mailzpy ~]# yum install -y squid

[root@mailzpy ~]# vim /etc/squid/squid.conf

# And finally deny all other access to this proxy
http_access allow all

# Squid normally listens to port 3128
http_port 3128 vhost vport

# Uncomment and adjust the following to add a disk cache directory.
cache_dir ufs /var/spool/squid 100 16 256
cache_peer 172.25.254.120 parent 80 0 proxy-only
# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid

[root@mailzpy ~]# systemctl restart squid
[root@mailzpy ~]# systemctl stop firewalld

5.4 客戶端

設置訪問172.25.254.120:3180
這裏寫圖片描述

5.5測試

使用客戶端訪問172.25.254.107
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章