瞭解squid服務以及安裝部署

squid做爲一款應用層的代理服務軟件,它主要提供了緩存加速、應用層過濾的功能。linux

squid代理服務器的工做機制:
瞭解squid服務以及安裝部署web

當咱們客戶機經過squid代理去訪問web頁面時,指定的代理服務器會先檢查本身的緩存,如果緩存中有咱們客戶機須要的頁面,那麼squid服務器將直接把緩存中的頁面內容返回給客戶機,若是緩存中沒有客戶端請求的頁面,那麼squid代理服務器就會向internet發送訪問請求,得到返回的web頁面後,將網頁的數據保存到緩存中併發送給客戶機。正則表達式

因爲客戶機的web訪問請求其實是squid代理服務器來代替完成的,因此隱藏了用戶的真實IP地址,從而起到必定的保護做用。
另外一方面,squid也能夠針對要訪問的目標、客戶機的地址、訪問的時間段進行過濾控制。vim

根據實現的方式不一樣,基本能夠分爲傳統代理和透明代理兩種方式:瀏覽器

傳統代理:也就是普通的代理服務,須要咱們客戶端在瀏覽器、聊天工具等一些程序中設置代理服務器的地址和端口,而後才能使用代理來訪問網絡,這種方式相比較而言比較麻煩,由於客戶機還需手動指定代理服務器,因此通常用於Internet環境。緩存

透明代理:與傳統代理實現的功能是同樣的,區別在於客戶機不須要手動指定代理服務器的地址和端口,而是經過默認路由、防火牆策略將web訪問重定向,實際上仍然交給代理服務器來處理,重定向的過程徹底是由squid服務器進行的,因此對於客戶機來講,甚至不知道本身使用了squid代理服務,所以呢,咱們稱之爲透明模式。
透明代理多用於局域網環境,如在Linux網關中啓用透明代理後,局域網主機無須進行額外設置就能享受更好的上網速度。bash

就此打住,不說廢話,開始安裝及優化squid服務器:服務器

來吧,先來搭建一個傳統代理:網絡

所需設備:併發

一、Windows客戶端一個;
二、squid服務器一個,具備兩塊網卡;
三、web服務器一個;

所需squid源碼包:

連接:https://pan.baidu.com/s/1RoWEOxLH1yFHSL07pralYw
提取碼:sdnx
或者直接去官網下載:
http://www.squid-cache.org/Versions/
網絡環境以下:
瞭解squid服務以及安裝部署

一、開始實施安裝:

[root@localhost src]# tar zxf squid-3.5.23.tar.gz 
[root@localhost src]# cd squid-3.5.23/
[root@localhost squid-3.5.23]# ./configure --prefix=/usr/local/squid 
--sysconfdir=/etc --enable-linux-netfilter --enable-async-io=240 
--enable-default-err-language=Simplify_Chinese --disable-poll 
--enable-epoll --enable-gunregex && make && make install

上述配置項的具體做用以下:
--prefix=/usr/local/squid :指定安裝目錄;
--sysconfdir=/etc :單獨將配置文件修改到其餘目錄;
--enable-linux-netfilter:使用內核過濾;
--enable-async-io=值:異步I/O,提高存儲性能;
--enable-default-err-language=Simplify_Chinese :錯誤信息顯示語言。
--disable-poll 與--enable-epoll:關閉默認使用poll模式,開啓epoll模式提提高性能;
--enable-gunregex:使用GUN正則表達式。
更多的配置項能夠參考「./configure --help」。

安裝完成後,建立連接文件、建立用戶和組:

[root@localhost /]# # ln -s /usr/local/squid/sbin/* /usr/local/sbin/
[root@localhost /]# useradd -M -s /sbin/nologin squid
[root@localhost /]# chown -R squid:squid /usr/local/squid/var/

二、修改squid的配置文件:

[root@localhost /]# vim /etc/squid.conf

                 ...........................

http_port 3128      #用來指定代理服務器監聽地址和端口,默認存在該行(默認端口號是3128)
cache_effective_user squid   #用來指定squid的程序用戶,用來設置初始化等相關信息。
#不然啓動不成功,該行及下一行配置項默認不存在。
cache_effective_group squid      #用來指定運行組。需手動添加該行

                 ...........................

三、squid服務的運行控制:

[root@localhost /]# squid -k parse 
#檢查配置文件語法是否正確,只要在輸出的信息中沒有ERROR字樣便可。
[root@localhost /]# squid -z                         #初始化緩存目錄。
[root@localhost /]# squid                            #啓動squid服務。

#爲了方便控制服務,編寫一個squid服務腳本,並添加爲系統服務,腳本以下:
[root@localhost /]# vim /etc/init.d/squid

#!/bin/bash
#chkconfig: 2345 90 25
#config: /etc/squid.conf
#pidfile: /usr/local/squid/var/run/squid.pid
#description: Squid - Internet Object Cache
PID="/usr/local/squid/var/run/squid.pid"
CONF="/etc/squid.conf"
CMD="/usr/local/squid/sbin/squid"
case "$1" in
 start)
        netstat -anpt | grep squid &> /dev/null
        if [ $? -eq 0 ]
        then
        echo "squid is running"
        else
        echo "正在啓動squid..."
        $CMD
        fi
;;
 stop)
        $CMD -k kill &> /dev/null
        rm -rf $PID &> /dev/null
;;
 status)
        [ -f $PID ] &> /dev/null
                if [ $? -eq 0 ]
                  then
        netstat -anpt | grep squid
                else
                  echo "squid is not running."
                fi
;;
restart)
        $0 stop &> /dev/null
        echo "正在關閉squid..."
                $0 start &> /dev/null
        echo "正在啓動squid..."
;;
reload)
        $CMD -k reconfigure
;;
check)
        $CMD -k parse
;;
*)
        echo "用法:$0 {start | stop | restart | reload | check | status}"
;;
esac

[root@localhost /]# chmod +x /etc/init.d/squid              #賦予腳本執行權限
[root@localhost /]# chkconfig --add squid                     #添加爲系統服務
[root@localhost /]# systemctl restart squid                      #重啓服務以測試腳本是否可用

如今基於傳統代理的squid代理服務器已經配置完成了,模擬的web服務器省略配置過程,可參考博文:http://www.javashuo.com/article/p-qamvjqdc-mt.html 搭建web服務器。如今開啓客戶端進行配置及驗證:

一、打開瀏覽器,手動指定代理服務器:
1)
瞭解squid服務以及安裝部署
2)
瞭解squid服務以及安裝部署
3)指定代理服務器IP及端口號:
瞭解squid服務以及安裝部署

4)訪問驗證(看到了網站默認的首頁):
瞭解squid服務以及安裝部署

這裏沒作DNS服務,若須要DNS服務,參考博文:http://www.javashuo.com/article/p-urpobsed-eo.html

至此,基於傳統代理的部署已經完成,並測試成功。

配置squid服務器的透明代理參考博文: http://www.javashuo.com/article/p-mnfxxwsf-gr.html

相關文章
相關標籤/搜索