squid介紹
官網地址:http://www.squid-cache.org/
Squid cache(簡稱為 Squid)是一個流行的自由軟體(GNU 通用公共許可證)的代理服務器和 Web 快取服務器,Squid 有廣泛的用途,從作為網頁服務器的前置 cache 服務器快取相關請求來提高 Web 服務器的速度,到為一組人共享網路資源而快取萬維網,域名系統和其他網路搜索,到通過過濾流量幫助網路安全,到局域網通過代理上網,Squid 主要設計用于在 Unix 一類系統運行,
Squid 的發展歷史相當悠久,功能也相當完善,除了 HTTP 外,對于 FTP 與 HTTPS 的支援也相當好,在 3.0 測驗版中也支援了 IPv6,
Squid主要提供快取加速、應用層過濾控制的功能,
代理的作業機制
(1)代替客戶機向網站請求資料,從而可以隱藏用戶的真實IP地址,
(2)將獲得的網頁資料(靜態 Web 元素)保存到快取中并發送給客戶機,以便下次請求相同的資料時快速回應,
代理服務器的概念及其作用
代理服務器是一個位于客戶端和原始(資源)服務器之間的服務器,為了從原始服務器取得內容,客戶端向代理服務器發送一個請求并指定目標原始服務器,然后代理服務器向原始服務器轉交請求并將獲得的內容回傳給客戶端,
快取代理對于Web至關重要,尤其對于大型高負載Web站點,快取可作為性能優化的一個重要手段,可以極大減輕后端服務器的負載,通常對于靜態資源,即較少經常更新的資源,如圖片,css或js等進行快取,從而在每次重繪瀏覽器的時候,不用重新請求,而是從快取里面讀取,這樣就可以減輕服務器的壓力,
主要作用
(1)資源獲取:代替客戶端實作從原始服務器的資源獲取
(2)加速訪問:代理服務器可能離原始服務器更近,從而起到一定的加速作用
(3)快取作用:代理服務器保存從原始服務器所獲取的資源,從而實作客戶端快速的獲取
(4)隱藏真實地址:代理服務器代替客戶端去獲取原始服務器資源,從而隱藏客戶端真實資訊
squid的三種代理型別
squid軟體主要有三種代理型別:
- 正向代理:代理內部主機上網,共享上網,快取,控制內網用戶上網行為等功能(客戶端需要設定代理服務器的IP和代理埠),
- 透明代理:客戶機不需指定代理服務器的地址和埠,而是通過默認路由、防火墻策略將Web訪問重定向給代理服務器處理,
- 反向代理:如果 Squid 反向代理服務器中快取了該請求的資源,則將該請求的資源直接回傳給客戶端;否則反向代理服務器將向后臺的 WEB 服務器請求資源,然后將請求的應答回傳給客戶端,同時也將該應答快取在本地,供下一個請求者使用,
正向代理分析圖:
反向代理分析圖:
squid安裝和組態檔說明
安裝軟體
# yum鏡像倉庫里有squid的軟體包
yum -y install squid
# squid配置初始化
cat >> /etc/squid/squid.conf<< EOF
cache_mem 64 MB
maximum_object_size 4 MB
maximum_object_size_in_memory 4096 KB
cache_dir ufs /var/spool/squid 100 16 256
access_log /var/log/squid/access.log
EOF
# squid初始化
squid -z
# 啟動squid并設定為開機啟動
service squid start && systemctl enable squid
# 檢查squid是否正常運行
netstat -ntlp | grep squid
# 如果防火墻開啟的話,放開3128埠
firewall-cmd --zone=public --add-service=squid --permanent
軟體的檔案串列
/etc/squid/squid.conf # 組態檔
/etc/rc.d/init.d/squid # 啟動腳本
/usr/sbin/squid # 二進制命令
/usr/share/doc/squid-3.1.10 # 手冊
/var/log/squid # 日志目錄
/var/spool/squid # 快取目錄
組態檔說明
# cat /etc/squid/squid.conf
##### 設定監聽的IP與埠號
http_port 3128
##### 額外提供給squid使用的記憶體大小,默認256 MB
cache_mem 64 MB
##### 設定squid磁盤快取最大檔案,超過4M的檔案不保存到硬碟
maximum_object_size 4 MB
##### 設定squid磁盤快取最小檔案
minimum_object_size 0 KB
##### 設定squid記憶體快取最大檔案,超過4M的檔案不保存到記憶體
maximum_object_size_in_memory 4096 KB
##### 定義squid的cache存放路徑 、cache目錄容量(單位M)、一級快取目錄數量、二級快取目錄數量,此處的100 一定要大于 cache_mem 否則報錯,
cache_dir ufs /var/spool/squid 100 16 256
##### log檔案日志格式
logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
##### log檔案存放路徑和日志格式
access_log /var/log/squid/access.log combined
##### 設定快取日志
cache_log /var/log/squid/cache.log
##### log輪轉60天
logfile_rotate 60
##### cache目錄使用量大于95%時,開始清理舊的cache
cache_swap_high 95
##### cache目錄清理到90%時停止
cache_swap_low 90
##### 定義本地網段
acl localnet src 192.168.1.0/24
##### 允許本地網段使用
http_access allow localnet
##### 拒絕所有
http_access deny all
##### 主機名
visible_hostname xxx.xxxx.xxxx
##### 管理員郵箱
cache_mgr [email protected]
正向代理客戶端配置
Windows客戶端配置代理:
Internet 選項 > 連接 > 局域網設定 ”,在代理服務器區域,按照以下格式設定:
Linux客戶端:
先創建并修改/etc/profile.d/proxy.sh檔案
# 創建proxy.sh檔案
touch /etc/profile.d/proxy.sh
編輯proxy.sh檔案
# 進入profile.d目錄
cd /etc/profile.d/
# 編輯proxy.sh檔案
vim proxy.sh
添加下列內容
# squid正向代理只支持http、https、ftp協議,把下面的proxy_server_ip更換為自己搭建的squid服務器IP
export https_proxy=http://proxy_server_ip:3128
export http_proxy=http://proxy_server_ip:3128
export ftp_proxy=http://proxy_server_ip:3128
執行source /etc/profile使其生效
# 執行source /etc/profile
source /etc/profile
配置完成
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/551360.html
標籤:Linux
下一篇:返回列表