1.緩存代理概述linux
做爲應用層的代理服務軟件,Squid主要提供緩存加速和應用層過濾控制的功能。正則表達式
2.代理的工做機制vim
當客戶機經過代理來請求Web頁面時,指定的代理服務器會檢查本身的緩存,若是緩存中已經存在客戶機須要訪問的頁面,則之間將緩存中的頁面內容反饋給客戶機;若代理服務器中的緩存中沒有客戶機須要訪問的頁面,則由代理服務器向Internet發送訪問請求,再將得到的頁面數據保存到緩存中,併發送給客戶機.瀏覽器
1.解壓縮squid安裝文件到/opt緩存
tar zxvf squid-3.5.28.tar.gz -C /opt
2.配置squid的編譯選項bash
cd /opt/squid-3.5.28/ [root@promote squid-3.5.28]# ./configure --prefix=/usr/local/squid \ //指定安裝目錄 > --sysconfdir=/etc \ //單獨將配置文件修改到其餘目錄 > --enable-arp-acl \ > --enable-linux-netfilter \ //使用內核過濾 > --enable-linux-tproxy \ //支持透明模式 > --enable-async-io=100 \ //異步I/O > --enable-err-language="Simplify_Chinese" \ //錯誤提示信息的語言 > --enable-underscore \ //容許url中有下劃線 > --enable-poll \ //使用poll()模式,提高性能 > --enable-gnuregex //使用gun正則表達式
make && make install
3.將squid程序命令建立軟連接到系統命令下服務器
ln -s /usr/local/squid/sbin/* /usr/local/sbin/
4.添加用戶併發
useradd -M -s /sbin/nologin squid
5.更改所屬主與所屬組異步
chown -R squid.squid /usr/local/squid/var/
6.編輯squid配置文件,
vim /etc/squid.confasync
cache_effective_user squid #添加 指定程序用戶 cache_effective_group squid #添加 指定帳號基本組 coredump_dir /usr/local/squid/var/cache/squid
squid -k parse //檢查配置文件語法 squid -z //初始化緩存目錄 squid //啓動服務
查看服務是否開啓
netstat -natp | grep squid tcp6 0 0 :::3128 :::* LISTEN 84346/(squid-1)
7.建立squid腳本文件,更好的管理squid服務
cd /etc/init.d/ vim 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 kill &> /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 "正在關閉 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 squid //給腳本添加可執行權限
8.添加爲系統服務並設置開機自啓動
chkconfig --add squid chkconfig --level 35 squid on
此時咱們可使用squid腳原本啓動、中止、重啓和重載suqid服務器了。
傳統代理案例環境
角色 | ip地址 | 安裝服務 |
---|---|---|
squid服務器 | 192.168.174.209 | suqid服務 |
httpd服務器 | 192.168.174.208 | httpd服務 |
win7測試機 | 192.168.174.129 | null |
(1)編輯suqid.conf 配置文件
cache_mem 64 MB #指定緩存功能所使用的內存空間大小,便於保持訪問較頻繁的WEB對象,容量最好爲4的倍數,單位爲MB,建議設爲物理內存的1/4 reply_body_max_size 10 MB #容許用戶下載的最大文件大小,以字節爲單位。默認設置0表示不進行限制 maximum_object_size 4096 KB #容許保存到緩存空間的最大對象大小,以KB爲單位,超過大小限制的文件將不被緩存,而是直接轉發給用戶
重啓squid服務
service squid restart 正在關閉 squid... 正在啓動 squid...
(2)添加防火牆策略
[root@promote init.d]# iptables -F [root@promote init.d]# setenforce 0 [root@promote init.d]# iptables -I INPUT -p tcp --dport 3218 -j ACCEPT
重載suqid服務
[root@promote init.d]# service squid reload
(1)關閉防火牆
[root@promote ~]# systemctl stop firewalld.service [root@promote ~]# setenforce 0
(2)安裝httpd
[root@promote ~]# yum install httpd -y
(3)開啓httpd服務
[root@promote ~]# systemctl start httpd.service [root@promote ~]# netstat -natp | grep 80 tcp6 0 0 :::80 :::* LISTEN 7975/httpd
3.win7客戶機上進行代理配置
(1)在Ie瀏覽器中,選擇「工具」一>「Internet 選項」,彈出「Internet選項」對話框,
在「鏈接」選項卡中的「局域網(LAN)設置」選項組中單擊「局域網設置」按鈕,彈出「局域網(LAN)設置」對話框,
勾選"爲LAN使用代理服務器",在地址欄框中輸入squid代理服務器的地址,端口爲3128
(2)訪問httpd服務器的網站
4.查看httpd服務器訪問日誌的新增記錄
cd /etc/httpd/logs vim access_log
透明代理案例環境 |
角色 | ip地址 | 安裝服務 |
---|---|---|---|
squid服務器 | ens32 192.168.100.1 ens34 12.0.0.1 | suqid服務 | |
httpd服務器 | 12.0.0.10 | httpd服務 | |
win7測試機 | 192.168.100.100 | null |
1.squid服務器配置
(1)編輯squid.conf配置文件
http_port 192.168.100.1:3128 transparent
重載服務
service squid reload
(2)添加防火牆策略
[root@localhost ~]# iptables -t nat -I PREROUTING -i ens32 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128 [root@localhost ~]# iptables -t nat -I PREROUTING -i ens32 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128 [root@localhost ~]# iptables -I INPUT -p tcp --dport 3218 -j ACCEPT
2.win7測試機瀏覽器配置
3.查看htpt服務器的日誌訪問