squid學習筆記
官方文檔:http://www.squid-cache.org/Doc/
※,squid這個軟件在教程中叫做cache
※,squid安裝
squid 安裝包資源
Ubuntu:20.04LTS
- apt install squid //默認是v4版本(4.10),編譯選項如下
[root@sungrow27 squid]$squid -v Squid Cache: Version 4.10 Service Name: squid Ubuntu linux configure options: '--build=x86_64-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' --sysconfdir=/etc' '--localstatedir=/var' '--libexecdir=${prefix}/lib/squid' '--srcdir=.' '--disable-maintainer-mode' '--disable-dependency-tracking' '--disablesilent-rules' 'BUILDCXXFLAGS=-g -O2 -fdebug-prefix-map=/build/squid-z5nTiP/squid-4.10=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -DFORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed' 'BUILDCXX=x86_64-linux-gnu-g++' '--with-build-environment=default' '--enable-uild-info=Ubuntu linux' '--datadir=/usr/share/squid' '--sysconfdir=/etc/squid' '--libexecdir=/usr/lib/squid' '--mandir=/usr/share/man' '--enable-inline' '--disale-arch-native' '--enable-async-io=8' '--enable-storeio=ufs,aufs,diskd,rock' '--enable-removal-policies=lru,heap' '--enable-delay-pools' '--enable-cache-digests '--enable-icap-client' '--enable-follow-x-forwarded-for' '--enable-auth-basic=DB,fake,getpwnam,LDAP,NCSA,NIS,PAM,POP3,RADIUS,SASL,SMB' '--enable-auth-digest=fie,LDAP' '--enable-auth-negotiate=kerberos,wrapper' '--enable-auth-ntlm=fake,SMB_LM' '--enable-external-acl-helpers=file_userip,kerberos_ldap_group,LDAP_group,sesion,SQL_session,time_quota,unix_group,wbinfo_group' '--enable-security-cert-validators=fake' '--enable-storeid-rewrite-helpers=file' '--enable-url-rewrite-helprs=fake' '--enable-eui' '--enable-esi' '--enable-icmp' '--enable-zph-qos' '--enable-ecap' '--disable-translation' '--with-swapdir=/var/spool/squid' '--with-logdr=/var/log/squid' '--with-pidfile=/var/run/squid.pid' '--with-filedescriptors=65536' '--with-large-files' '--with-default-user=proxy' '--with-gnutls' '--enable-inux-netfilter' 'build_alias=x86_64-linux-gnu' 'CC=x86_64-linux-gnu-gcc' 'CFLAGS=-g -O2 -fdebug-prefix-map=/build/squid-z5nTiP/squid-4.10=. -fstack-protector-stong -Wformat -Werror=format-security -Wall' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2 'CXX=x86_64-linux-gnu-g++' 'CXXFLAGS=-g -O2 -fdebug-prefix-map=/build/squid-z5nTiP/squid-4.10=. -fstack-protector-strong -Wformat -Werror=format-security' - apt install squid3 //安裝v3版本,編譯選項如下
[root@sungrow27 ~]$squid3 -v Squid Cache: Version 3.3.8 Ubuntu configure options: '--build=x86_64-linux-gnu' '--prefix=/usr' '--includedir=${prefix}/include' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--sysconfdir=/etc' '--localstatedir=/var' '--libexecdir=${prefix}/lib/squid3' '--srcdir=.' '--disable-maintainer-mode' '--disable-dependency-tracking' '--disable-silent-rules' '--datadir=/usr/share/squid3' '--sysconfdir=/etc/squid3' '--mandir=/usr/share/man' '--enable-inline' '--enable-async-io=8' '--enable-storeio=ufs,aufs,diskd,rock' '--enable-removal-policies=lru,heap' '--enable-delay-pools' '--enable-cache-digests' '--enable-underscores' '--enable-icap-client' '--enable-follow-x-forwarded-for' '--enable-auth-basic=DB,fake,getpwnam,LDAP,MSNT,MSNT-multi-domain,NCSA,NIS,PAM,POP3,RADIUS,SASL,SMB' '--enable-auth-digest=file,LDAP' '--enable-auth-negotiate=kerberos,wrapper' '--enable-auth-ntlm=fake,smb_lm' '--enable-external-acl-helpers=file_userip,kerberos_ldap_group,LDAP_group,session,SQL_session,unix_group,wbinfo_group' '--enable-url-rewrite-helpers=fake' '--enable-eui' '--enable-esi' '--enable-icmp' '--enable-zph-qos' '--enable-ecap' '--disable-translation' '--with-swapdir=/var/spool/squid3' '--with-logdir=/var/log/squid3' '--with-pidfile=/var/run/squid3.pid' '--with-filedescriptors=65536' '--with-large-files' '--with-default-user=proxy' '--enable-linux-netfilter' 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall' 'LDFLAGS=-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' 'CPPFLAGS=-D_FORTIFY_SOURCE=2' 'CXXFLAGS=-g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security'
centos7
※,配置項解析
(1)定義ACL訪問列表
定義格式:·acl 列表名稱 列表類型 列表內容 ...·
常用的ACL列表類型
src 源地址
dst 目標地址
port 目標端口
dstdomain 目標域
time 訪問時間
maxconn 最大并發連接
url_regex 目標URL地址 # 可以定義大的范圍比如http://www.baidu.com
urlpath_regex 整個目標URL路徑 # 可以定位到每個網站的具體目標的url,比如百度音樂的一首歌的url
(2)ACL訪問控制: 定義好各種訪問控制列表以后,需要使用httpd_access配置項來進行控制
格式:·http_access allow或deny 列表名……·
- 在每一條http_access規則中,可以同時包含多個訪問控制列表名,各個列表之間以空格分隔,為“與”的關系,表示必須滿足所有訪問控制列表對應的條件才會進行限制
- 規則匹配原理:沒有設置任何規則時,Squid服務將拒絕客戶端的請求,有規則但找不到相匹配的項時,Squid將采用與最后一條規則相反的權限,即如果最后一條規則時allow,就拒絕客戶端的請求,否則允許該請求,但是我們要盡量避免找不到相匹配的情況。
★,添加速度限制
參考資源:
實操:配置如下
delay_pools 1
delay_class 1 1
delay_access 1 allow all
delay_parameters 1 10000000/10000000
delay_initial_bucket_level 50
在squid v3版本上配置生效,但是Ubuntu20.04LTS上默認安裝的v4.10版本的squid 限速不生效!
★,
浙公網安備 33010602011771號