国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

Squid+MRTG實現完善的緩存代理和http服務加速代理

2024-07-21 02:37:27
字體:
來源:轉載
供稿:網友

  Squid是一種源代碼開放的高性能代理緩存服務器。它可支持FTP,gopher和Http數據對象的代理。另外,Squid也支持SSL,多樣化訪問控制和代理請求的完整日志功能。通過輕量級的網際緩存協議,Squid以網狀或層次的方式分配內存,這樣能節省額外的帶寬。 提供Http服務加速代理,Web服務器把Http數據推到Squid緩存中,外界的請求訪問可以通過緩存提取所需數據,實現Web服務器的動態鏡像。
  另外,為了實現對Squid服務器的監控,采用MRTG。MRTG 是 Multi Router Traffic Grapher 的縮寫,它主要的用途是監測網絡服務設備的流量,并生成包括圖片的Html文件,可以直觀的顯示網絡服務的流量,以提供Squid緩存服務的監測。
  通過Squid+MRTG可以配置一個完善的代理服務提供方案。下面為具體配置步驟:
  一.基礎預備
  Squid下載地址:http://www.squid-cache.org
  版本:squid-2.4.STABLE4-src.tar.gz
  MRTG下載地址:http://people.ee.ethz.ch/~oetiker/weBTools/mrtg/pub/
  版本:mrtg-2.9.22.tar.gz
  機器配置為:256M內存,9G硬盤(其中4G分區專用緩存目錄),PII433。
  
  二.安裝步驟
  解壓Squid(一般做法,把軟件包括在/opt目錄下)
  #tar zxvf squid-2.4.STABLE4-src.tar.gz
  #cd squid
  //進行編譯
  #./configure --PRefix=/usr/local/squid --enable-delay-pools --enable-snmp --enable-cache-digests --enable-auth-modules=”NCSA”
  #make all
  #make install
  *對編譯項目的解釋:
  --prefix 為編譯Squid所存放的目錄,這里為/usr/local/squid
  --enable-delay-pools 此選項使能一個延時池,這樣能對某些特定的請求限制額定帶寬。
  --enable-snmp 此選項可以讓MRTG使用SNMP協議對服務器的流量狀態進行監測,因此必須選擇此項,使Squid支持SNMP接口。
  --enable-cache-digests 使能緩存摘要,本來此項目的是為了在Squid集群服務之間迅速發現緩存對象,這里在本地使用,可以加快請求時,檢索緩存內容的速度。
  --enable-auth-modules 此編譯選項啟用認證模塊,可以對訪問代理用戶進行授權。
  
  安裝MRTG
  #tar zxvf mrtg-2.9.22.tar.gz
  #cd mrtg*
  #./configure --prefix=/usr/local/mrtg-2
  #make
  #make install
  /* 幾點說明:
  1.MRTG大部分程序是用Perl腳本寫成,需要Perl版本為5.005以上才能運行,RH 7.2帶有perl版本為v5.6.0,非常滿足要求。(假如版本不夠,請到www.perl.com下載安裝。)
  2.MRTG需要zlib,gd和libpng三個處理圖形的庫支持,RH7.2滿足此要求。(假如沒有安裝,請到http://www.boutell.com/gd/ http://www.libpng.org/pub/png/src/ http://www.gzip.org/zlib 下載安裝)
  
  三.具體配置
  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
  }
  
  下面配置Http服務加速代理
  httpd_accel_host 202.98.187.17
  httpd_accel_port 80
  httpd_accel_with_proxy on
  (注:假如配置代理和加速服務,必須httpd_accel_with_proxy選項打開。假如需要配置多個加速,可以使用虛擬的概念。)
  
  snmp_port 3401
  此標記設置snmp_port端口為3401,可以使MRTG監測服務運行狀態。
  
  snmp_access allow aclsnmp localhost

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 什邡市| 巴楚县| 伽师县| 牡丹江市| 西林县| 塔城市| 内乡县| 师宗县| 正定县| 桂林市| 济源市| 大理市| 乌海市| 绵竹市| 宜章县| 开阳县| 健康| 蚌埠市| 甘谷县| 离岛区| 申扎县| 平原县| 北海市| 南安市| 恩施市| 通辽市| 旺苍县| 长葛市| 鸡西市| 承德市| 治县。| 哈巴河县| 前郭尔| 奉贤区| 利辛县| 思茅市| 桐梓县| 元朗区| 彭泽县| 宝应县| 泰来县|