使用MRTG進行squid流量的限制-配置lSquid
使用MRTG進行squid流量的限制
本文講述的是 使用MRTG進行squid流量的限制:
lSquid配置(僅對必要選項配置并說明
http_port 80
此選項用于Squid代理所偵聽的端口,由于要實現Http加速代理,則偵聽端口80
- tcp_outgoing_address 255.255.255.255
此句法指定了遠程服務器的IP地址,這里我們使用255.255.255.255來指定為所有地址
- tcp_incoming_address
這里可以使用http_port語法進行綁定端口和IP地址。表示客戶端的請求。可以不使用。
- cache_mem 64 MB
由于Squid在讀寫磁盤,I/O通道,數據轉貯等需要大量內存,我們可以把內存值稍微設置大一些,這樣可以提供服務器性能。
- cache_swap_low 95
這用做表示緩存內部對象的替換的衡量基線。當交換分區的磁盤利用率超越這個基線,那么緩存對象替換也就隨之開始。這里是用百分率做衡量標準。
- cache_swap_high 98
此標記用于緩存對象替換的最高程度,當交換分區磁盤利用率接近此設置,則表示對象的更新程度更為劇烈。這里由于我的緩存區設置比較大,因此設置為98%。
下面幾個配置標記采用系統默認配置。
- { maximum_object_size 4096 KB
{ 超過此尺寸的對象將不緩存。
- { minimum_object_size 0 KB
{ 小于此尺寸的對象將不緩存。
- { maximum_object_size_in_memory 8 KB
{ 內存中能緩存的最大對象尺寸。
- { ipcache_size 1024
{ 指定IP緩存大小。
- { ipcache_low 90
{ 緩存IP地址的最低基線。
- { ipcache_high 95
{ 緩存IP地址的最高極限。
- { fqdncache_size 1024
{ 緩存DNS全域名解析的尺寸。
- cache_replacement_policy lru
此標記用于當緩存新對象時,使用緩存策略來清除緩存中特定對象。這里使用lru表示:它只替換長時間沒有被訪問過的對象。其他策略請參看配置文檔介紹。
- memory_replacement_policy lru
此用法同上,區別在于替換內存對象。
- cache_dir ufs /cache 4000 16 256
設置緩存根目錄為/cache,類型為ufs,緩存區大小為4G,可以有16個二級子目錄,每有二級目錄有256個三級子目錄。
- cache_access_log /var/log/squid/access.log
- cache_log /var/log/squid/cache.log
- cache_store_log /var/log/squid/store.log
- cache_swap_log /var/log/squid/swap.log
上面幾項是緩存日志記錄的路徑和文件名。
- log_ip_on_direct on
記錄客戶端主機的IP地址。
- log_fqdn on
記錄全DNS域名解析。
- mime_table /usr/local/squid/etc/mime.conf
Squid所用mime的文件路徑
- pid_filename /usr/local/squid/logs/squid.pid
Squid進程ID的文件。
- ftp_user Squid@ynst.net.cn
這里可以使用匿名登陸FTP服務器。
- ftp_list_width 32
FTP文件列表長度,超過長度則截斷文件名。
- ftp_passive on
允許主動連接FTP服務器。
- dns_nameservers 202.98.187.1
指定代理的域名解析服務器。
- authenticate_program /usr/local/squid/bin/ncsa_auth
- /usr/local/squid/etc/passwd
代理認證程序,這里在/usr/local/squid/etc使用htpasswd產生一個密碼文件,具體方法如下:
- #htpasswd –cdb passwd auth_usr1 pass1
- #htpasswd –db passwd auth_usr2 pass2
- #htpasswd –db passwd auth_usr3 pass3
創建passwd文件,并添加auth_usr1,auth_usr2,auth_usr3三個認證用戶。
- authenticate_children 5
所需要要產生的認證進程數。
- authenticate_ttl 3600
此標記設置認證保持時間。
- authenticate_ip_ttl 1800
此標記設置認證綁定IP地址的時間長度。
- authenticate_ip_ttl_is_strict on
此標記可在authenticate_ttl時間內,拒絕其他非認證IP地址訪問。
- request_header_max_size 10 KB
- request_body_max_size 1 MB
設置了Http請求的包頭和數據大小。
- request_body_max_size 0
這里,請求所返回的數據大小為0,意義為沒有任何限制。
- connect_timeout 180 seconds
- read_timeout 15 minutes
- request_timeout 20 seconds
上面幾項是代理服務幾個超時設置,這里使用配置文件默認值。
下面是訪問控制列表一些配置,這里對訪問的IP地址,域名,訪問類型極其訪問代理的權限做的限制:
- acl acldomain dstdomain .ynst.net.cn
- acl acceleratedport port 80
- acl acceleratedhost dst 202.98.187.17/255.255.255.255
- acl aclprotocol proto HTTP FTP
- acl aclmethod method GET POST
- acl aclauth proxy_auth required
(注:這里使用required表示任何passwd文件中存在的合法用戶才授予訪問權限。)
- acl aclsnmp snmp_community secrect
MRTG可以使用snmp協議檢測此代理服務運行狀態。
- acl aclconn maxconn 20
可并行連接的最大數量。
啟用定義的訪問控制列表
- http_access allow manager localhost
- http_access deny manager
- http_access allow aclauth
- http_access allow acceleratedport acceleratedhost
- http_access deny all
下面為緩存管理設置
- cache_mgr admin@ynst.net.cn
設置緩存管理者的接受郵件地址。
- cache_effective_user squidusr
- cache_effective_group squidgrp
設置執行Squid的用戶和用戶組。
{注:設置用戶和用戶組及其權限修改方法如下:
- #groupadd squidgrp
- #useradd –g squidgrp –d /home/squidusr squidusr
修改log日志權限屬性,使squidusr有寫權限。
- #chown squidusr /var/log/squid
- #chgrp squidgrp /var/log/squid
- #chown squidusr /var/log/squid/*.log
- #chown squidgrp /var/log/squid/*.log
- }
使用MRTG進行squid流量的限制-配置lSquid介紹到這里了,接下來一節是其他的配置,有Http服務加速代理、延遲隊列池進行配置、運行Squid代理服務、lMRTG配置
【編輯推薦】