CentOS7上squid的部署及兩種模式(4.1版本)-創(chuàng)新互聯(lián)

CentOS7上squid的部署及兩種模式(4.1版本)

簡介

  1. squid是什么?

Squid是一種用來緩沖Internet數(shù)據(jù)的軟件。它接受來自人們需要下載的目標(object)的請求并適當(dāng)?shù)靥幚磉@些請求。也就是說,如果一個人想下載一web頁面,他請求Squid為他取得這個頁面。Squid隨之連接到遠程服務(wù)器(比如:http://squid.nlanr.net/)并向這個頁面發(fā)出請求。然后,Squid顯式地聚集數(shù)據(jù)到客戶端機器,而且同時復(fù)制一份。當(dāng)下一次有人需要同一頁面時,Squid可以簡單地從磁盤中讀到它,那樣數(shù)據(jù)迅即就會傳輸?shù)娇蛻魴C上。當(dāng)前的Squid可以處理HTTP,F(xiàn)TP,GOPHER,SSL和WAIS等協(xié)議。但它不能處理如POP,NNTP,RealAudio以及其它類型的東西。

十載的臨澤網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整臨澤建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“臨澤網(wǎng)站設(shè)計”,“臨澤網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
  1. Internet緩沖的一些概念

你可能會想到一些問題:緩沖有多大的用處?什么時候目標(object)應(yīng)該或者不應(yīng)該被緩沖?例如,緩沖信用卡號碼是完全不適合的,腳本文件的執(zhí)行結(jié)果在遠程服務(wù)器端,站點經(jīng)常更新(像www.cnn.com)或者甚至站點不允許緩沖,這些情況也都是不適合緩沖的。Squid處理各種情況是不錯的(當(dāng)然,這需要遠程站點按標準形式工作)??蓤?zhí)行的cgi-bin腳本文件不被緩沖,返回正確頁眉的頁面是在一段限制了的時間內(nèi)被緩沖,而且你可以規(guī)定特殊的規(guī)則以確定什么是可以或不可以被緩沖的,還有緩沖的時間為多長。談到緩沖的用處有多大,這要看Internet的容量大小,各有不同。對于小型的緩沖區(qū)(幾轉(zhuǎn)磁盤空間)來說,返回值非常高(達到25%)。這個空間緩沖經(jīng)常訪問的站點,如netscape,cnn和其它一些類似情況的站點。如果你增加一倍緩沖的磁盤空間,但你不會成倍增加你的命中率。這是因為你開始緩沖網(wǎng)絡(luò)中剩余部分時,這些通常時很大的而且很少被訪問。一個非常大的高速緩沖區(qū),有20轉(zhuǎn)左右,可能返回值仍小于50%,除非你對保存數(shù)據(jù)的時間長短經(jīng)常改變(一般地你不要分配20轉(zhuǎn)的磁盤空間,因為頁面很快就會過時,應(yīng)該被刪除掉)。我們在這里說的目標(object)指的是可保存的web頁面或其它類似的可下載頁面(ftp文件或目錄內(nèi)容也稱為目標(object))。

3.Squid的下載和獲取

squid在諸多unix like系統(tǒng)上都有軟件庫的提供,比如在ubuntu可以使用apt install squid進行安裝,也可以到squid的官網(wǎng)直接下載二進制的編譯好的軟件包, 下載地址

代理的基本類型

  • 傳統(tǒng)代理

也就是普通的代理服務(wù),,必須在客戶端的瀏覽器、QQ聊天工具、下載軟件等程序中手動設(shè)置代理服務(wù)器的地址和端口,然后才能使用代理服務(wù)來訪問網(wǎng)絡(luò)。對于網(wǎng)頁瀏覽器,訪問網(wǎng)站時的域名解析請求也會發(fā)送給指定的代理服務(wù)器。

  • 透明代理

提供與傳統(tǒng)代理相同的功能和服務(wù),其區(qū)別在于客戶機不需要指定代理服務(wù)器的地址和端口,而是通過默認路由、防火墻策略將web訪問重定向,實際上仍然交給代理服務(wù)器來處理。重定向的過程對于客戶機來說是“透明”的,用戶甚至并不知道自己在使用代理服務(wù),所以稱為“透明代理”。

安裝部署(基于CentOS7部署squid4.1版本)

  • 實驗準備

CentOS7虛擬機、squid-4.1.tar.gz軟件包

  • 實驗部署
  1. 解壓源碼包

tar zxvf squid-4.1.tar.gz -C /opt

  1. 進行配置
./configure \ 

--prefix=/usr/local/squid \         #安裝目錄

-- sysconfdir =/etc \          #單獨將配置文件修改到其他目錄

--enable-arp-acl \             #可以在規(guī)則中設(shè)置為直接通過客戶端MAC進行管理,防止客戶端使用IP欺騙

--enable-linux-netfilter \     #使用內(nèi)核過濾

--enable-linux-tproxy \       #支持透明模式

--enable-async-io=100 \      #異步I/O,提升存儲性能,相當(dāng)于 --enable-pthreads   --enable-storeio=ufs,aufs

--enable-err-language="Simplify_Chinese" \         #錯誤信息的顯示語言

--enable-underscore \     #允許URL中有下劃線

--enable-poll \     #使用Poll()模式,提升性能

--enable-gnuregex        #使用GUN正則表達式
  1. 編譯安裝

make && make install

  1. 創(chuàng)建鏈接文件、用戶和組

ln -s /usr/local/squid/sbin/* /usr/local/sbin/

useradd -M -s /sbin/nologin squid

chown -R squid.squid /usr/local/squid/var/

  1. 修改squid配置文件
    vim /etc/squid.conf
。。。省略
http_port 3128
cache_effective_user squid        #添加   指定程序用戶
cache_effective_group squid       #添加   指定賬號基本組

CentOS7上squid的部署及兩種模式(4.1版本)

  1. 初始化緩存目錄、啟動服務(wù)

squid -z #初始化緩存目錄

squid #啟動服務(wù)

CentOS7上squid的部署及兩種模式(4.1版本)

  1. 創(chuàng)建服務(wù)啟動腳本

vim /etc/init.d/squid

#!/bin/bash
#chkconfig: 2345 90 25
PID="/usr/local/squid/var/run/squid.pid"
CONF="/etc/squid.conf"
CMD="/usr/local/squid/sbin/squid"

case "$1" in
   start)
     netstat -natp | grep squid &> /dev/null
     if [ $? -eq 0 ]
     then
       echo "squid is running"
       else
       echo "正在啟動 squid..."
       $CMD
     fi
   ;;
   stop)
     $CMD -k shutdown &> /dev/null     #這里可以仔細看下
     rm -rf $PID &> /dev/null
   ;;
   status)
     [ -f $PID ] &> /dev/null
        if [ $? -eq 0 ]
          then
            netstat -natp | grep squid
          else
            echo "squid is not running"
        fi
   ;;
   restart)
      $0 stop &> /dev/null
      echo "正在關(guān)閉 squid..."
         $0 start &> /dev/null
      echo "正在啟動 squid..."
   ;;
   reload)
      $CMD -k reconfigure
   ;;
   check)
      $CMD -k parse
   ;;
   *)
      echo "用法:$0{start|stop|status|reload|check|restart}"
   ;;
esac

chmod +x /etc/init.d/squid       #給與執(zhí)行權(quán)限
chkconfig --add squid         
chkconfig --level 35 squid on     #加入開機自啟動并且在3、5模式下開機自啟動

測試下服務(wù)啟動腳本

CentOS7上squid的部署及兩種模式(4.1版本)

  • 構(gòu)建傳統(tǒng)代理服務(wù)

主機 IP地址 主要服務(wù)
CentOS7-1172.16.10.129http服務(wù)
CentOS7-2172.16.10.128squid服務(wù)
windows7172.16.10.131客戶機

CentOS7上squid的部署及兩種模式(4.1版本)

CentOS7上squid的部署及兩種模式(4.1版本)

vim /etc/squid.conf

# And finally deny all other access to this proxy
http_access allow all     #添加 允許任意客戶機使用代理服務(wù)
http_access deny all

# Squid normally listens to port 3128
http_port 3128
cache_mem 64 MB   #指定緩存功能所使用的內(nèi)存空間大小,便于保持訪問較頻繁的WEB對象,容量最好為4的倍數(shù),單位為MB,建議設(shè)為物理內(nèi)存的1/4
reply_body_max_size 10 MB   #允許用戶下載的大文件大小,以字節(jié)為單位。默認設(shè)置0表示不進行限制
maximum_object_size 4096 KB    #允許保存到緩存空間的大對象大小,以KB為單位,超過大小限制的文件將不被緩存,而是直接轉(zhuǎn)發(fā)給用戶
cache_effective_user squid        #添加   指定程序用戶
cache_effective_group squid       #添加   指定賬號基本組
# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /usr/local/squid/var/cache/squid 100 16 256
  • 清空防火墻以前的策略及SELinux,添加防火墻策略并且重啟服務(wù)

iptables -F #清空防火墻策略

setenforce 0 #關(guān)閉SELinux

iptables -I INPUT -p tcp --dport 3128 -j ACCEPT #允許訪問3218端口的tcp數(shù)據(jù)包通過

  • 重啟服務(wù)器

service squid restart

  • web服務(wù)器關(guān)閉防火墻并且開啟服務(wù)

systemctl stop firewalld.service

setenforce 0

systemctl start httpd #開啟web服務(wù)

CentOS7上squid的部署及兩種模式(4.1版本)

  • client端瀏覽器設(shè)置代理

CentOS7上squid的部署及兩種模式(4.1版本)

CentOS7上squid的部署及兩種模式(4.1版本)

  • 查看web服務(wù)器的訪問日志

CentOS7上squid的部署及兩種模式(4.1版本)

  • 構(gòu)建透明模式

首先代理服務(wù)器要配置雙網(wǎng)卡,

其中ens33為內(nèi)網(wǎng)網(wǎng)關(guān)192.168.100.1;

ens36為外網(wǎng)網(wǎng)關(guān)12.0.0.1;

web服務(wù)器 12.0.0.12

client客戶端 192.168.100.50

CentOS7上squid的部署及兩種模式(4.1版本)

  • 設(shè)置路由轉(zhuǎn)發(fā),清空防火墻策略
echo "1" > /proc/sys/net/ipv4/ip_forward     #開啟路由轉(zhuǎn)發(fā)
iptables -F       #清空防火墻策略
iptables -t nat -F
  • 修改squid配置文件

CentOS7上squid的部署及兩種模式(4.1版本)

#這邊解釋一下,可能有人會問不應(yīng)該是3128端口么,其實不是,因為我使用squid4.1版本做的,有些東西和3.4版本可能會不同,如果設(shè)置3128端口,squid服務(wù)會無法開啟的,因為3128端口在被占用。

  • 重啟squid代理服務(wù)

    service squid stop

    service squid start

    netstat -ntap | grep squid

    tcp 0 0 192.168.100.1:3129 0.0.0.0: LISTEN 57899/(squid-1)
    tcp6 0 0 :::3128 :::
    LISTEN 57899/(squid-1)

    這里可以看到我們設(shè)置的3129端口已經(jīng)啟動了

  • 訪問驗證

CentOS7上squid的部署及兩種模式(4.1版本)

  • 查看web服務(wù)器的訪問日志

CentOS7上squid的部署及兩種模式(4.1版本)

這樣透明代理就完成了

#注:squid4.1和squid3.4版本配置還是有些不同的,希望能幫助到各位

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文題目:CentOS7上squid的部署及兩種模式(4.1版本)-創(chuàng)新互聯(lián)
文章URL:http://muchs.cn/article28/dsipjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、App設(shè)計網(wǎng)站營銷、電子商務(wù)、全網(wǎng)營銷推廣、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司