歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 基於反向代理的Web緩存加速現代理服務器

基於反向代理的Web緩存加速現代理服務器

日期:2017/2/27 9:27:44   编辑:更多Linux
  基於Apache mod_proxy的反向代理緩存加速實現  Apache包含了mod_proxy模塊,可以用來實現代理服務器,針對後台服務器的反向加速  安裝apache 1.3.x 編譯時:  --enable-shared=max --enable-module=most  注:Apache 2.x中mod_proxy已經被分離成mod_proxy和mod_cache:同時mod_cache有基於文件和基於內存的不同實現  創建/var/www/proxy,設置apache服務所用戶可寫  mod_proxy配置樣例:反相代理緩存+緩存  架設前台的www.example.com反向代理後台的www.backend.com的8080端口服務。  修改:httpd.conf  <VirtualHost *>  ServerName www.example.com  ServerAdmin [email protected]  # reverse proxy setting  ProxyPass / http://www.backend.com:8080/  ProxyPassReverse / http://www.backend.com:8080/  # cache dir root  CacheRoot "/var/www/proxy"  # max cache storage  CacheSize 50000000  # hour: every 4 hour   CacheGcInterval 4  # max page eXPire time: hour  CacheMaxExpire 240  # Expire time = (now - last_modified) * CacheLastModifiedFactor   CacheLastModifiedFactor 0.1  # defalt expire tag: hour  CacheDefaultExpire 1  # force complete after precent of content retrived: 60-90%  CacheForceCompletion 80  CustomLog /usr/local/apache/logs/dev_Access_log combined  </VirtualHost>    基於Squid的反向代理加速實現  Squid是一個更專用的代理服務器,性能和效率會比Apache的mod_proxy高很多。  如果需要combined格式日志補丁:  http://www.squid-cache.org/mail-archive/squid-dev/200301/0164.Html  squid的編譯:  ./configure --enable-useragent-log --enable-referer-log --enable-default-err-language=Simplify_Chinese --enable-err-languages="Simplify_Chinese English" --disable-internal-dns   make  #make install  #cd /usr/local/squid  make dir cache  chown squid.squid *  vi /usr/local/squid/etc/squid.conf  在/etc/hosts中:加入內部的DNS解析,比如:  192.168.0.4 [url]www.chedong.com[/url]   192.168.0.4 news.chedong.com  192.168.0.3 bbs.chedong.com  ---------------------cut here----------------------------------  # visible name  visible_hostname cache.example.com  # cache config: space use 1G and memory use 256M  cache_dir ufs /usr/local/squid/cache 1024 16 256   cache_mem 256 MB  cache_effective_user squid  cache_effective_group squid    http_port 80  httpd_accel_host virtual  httpd_accel_single_host off  httpd_accel_port 80  httpd_accel_uses_host_header on  httpd_accel_with_proxy on  # accelerater my domain only  acl acceleratedHostA dstdomain .example1.com  acl acceleratedHostB dstdomain .example2.com  acl acceleratedHostC dstdomain .example3.com  # accelerater http protocol on port 80  acl acceleratedProtocol protocol HTTP  acl acceleratedPort port 80  # access arc  acl all src 0.0.0.0/0.0.0.0  # Allow requests when they are to the accelerated machine AND to the  # right port with right protocol  http_access allow acceleratedProtocol acceleratedPort acceleratedHostA  http_access allow acceleratedProtocol acceleratedPort acceleratedHostB  http_access allow acceleratedProtocol acceleratedPort acceleratedHostC  # logging  emulate_httpd_log on  cache_store_log none  # manager  acl manager proto cache_object  http_access allow manager all  cachemgr_passwd pass all    ----------------------cut here---------------------------------  創建緩存目錄:  /usr/local/squid/sbin/squid -z  啟動squid  /usr/local/squid/sbin/squid  停止squid:  /usr/local/squid/sbin/squid -k shutdown  啟用新配置:  /usr/local/squid/sbin/squid -k reconfig  通過crontab每天0點截斷/輪循日志:  0 0 * * * (/usr/local/squid/sbin/squid -k rotate)    附:SQUID性能測試試驗  PHPMan.php是一個基於php的man page server,每個man  page需要調用後台的man命令和很多頁面格式化工具,系統負載比較高,提供了Cache  Friendly的URL,以下是針對同樣的頁面的性能測試資料:  測試環境:Redhat 8 on Cyrix 266 / 192M Mem   測試程序:使用apache的ab(apache benchmark):  測試條件:請求50次,並發50個連接  測試項目:直接通過apache 1.3 (80端口) vs squid 2.5(8000端口:加速80端口)     測試1:無CACHE的80端口動態輸出:  ab -n 100 -c 10 [url]http://www.chedong.com:81/phpMan.php/man/kill/1[/url]  This is ApacheBench, Version 1.3d <$Revision: 1.2 $> apache-1.3  Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd,  [url]http://www.zeustech.net/[/url]  Copyright (c) 1998-2001 The Apache Group, [url]http://www.apache.org/[/url]    Benchmarking localhost (be patient).....done  Server Software:      Apache/1.3.23                     Server Hostname:    localhost  Server  Port:        80    Document Path:       /phpMan.php/man/kill/1  Document Length:    4655 bytes    Concurrency Level:   5  Time taken for tests:  63.164 seconds  Complete requests:   50  Failed requests:    0  Broken pipe errors:   0  Total transferred:   245900 bytes  HTML transferred:    232750 bytes  Requests per second:  0.79 [#/sec] (mean)  Time per request:    6316.40 [ms]  (mean)  Time per request:    1263.28 [ms]  (mean, across all concurrent requests)  Transfer rate:       3.89 [Kbytes/sec] received    Connnection Times (ms)           min mean[+/-sd] median  max  Connect:    0    29 106.1   0  553  Processing: 2942 6016  1845.4  6227 10796    Waiting:    2941 5999 1850.7  6226 10795    Total:     2942 6045 1825.9  6227 10796    Percentage of the requests served within a certain time (ms)   50%  6227   66%  7069   75%  7190   80%  7474   90%  8195   95%  8898   98%  9721   99% 10796  100% 10796 (last request)    測試2:SQUID緩存輸出  /home/apache/bin/ab -n50 -c5  "http://localhost:8000/phpMan.php/man/kill/1"  This is ApacheBench, Version 1.3d <$Revision: 1.2 $> apache-1.3  Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd,  [url]http://www.zeustech.net/[/url]  Copyright (c) 1998-2001 The Apache Group, [url]http://www.apache.org/[/url]    Benchmarking localhost (be patient).....done  Server Software:      Apache/1.3.23                     Server Hostname:    localhost  Server  Port:        8000    Document Path:       /phpMan.php/man/kill/1  Document Length:    4655 bytes    Concurrency Level:   5  Time taken for tests:  4.265 seconds  Complete requests:   50  Failed requests:    0  Broken pipe errors:   0  Total transferred:   248043 bytes  HTML transferred:    232750 bytes  Requests per second:  11.72 [#/sec] (mean)  Time per request:    426.50 [ms] (mean)  Time per request:    85.30 [ms] (mean,  across all concurrent requests)  Transfer rate:       58.16 [Kbytes/sec] received    Connnection Times (ms)           min mean[+/-sd] median  max  Connect:      0   1    9.5   0  68  Processing:    7  83 537.4     7 3808    Waiting:      5  81 529.1     6 3748    Total:       7  84 547.0     7 3876    Perce




Copyright © Linux教程網 All Rights Reserved