成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

CentOS 5.8 下如何安裝配置 Varnish-2.1.5 ?

原創
運維 系統運維
Varnish是一款強大的反向代理加速軟件,其工作原理、具體流程及VCL語法網上資料多,本文不再贅述。主要講述了在CentOS5.8 下,對varnish-2.1.5的安裝配置方法。

【51CTO原創稿件】Varnish是一款強大的反向代理加速軟件,關于其工作原理可以參考下圖,其具體流程及VCL語法我這里就不做說明,網上資料多,大家還可以對照參考其官方網站和《Varnish中文權威指南》:

 

一、安裝CentOS5.8系統環境下的依耐關系

  1. yum install gcc gcc-c++ 
  2. yum install automake autoconflibtool ncurses-devel libxslt groff pcre-devel pkgconfig libtool -y 

二、下載varnish-2.1.5源碼包,并進行編譯安裝。

  1. cd /usr/local/src 
  2. wget  http://repo.varnish-cache.org/source/varnish-2.1.5.tar.gz 
  3. tar zxvf varnish-2.1.5.tar.gz 
  4. cd varnish-2.1.5. 
  5. ./autogen.sh 

#autogen.sh命令是用來檢查軟件的依耐關系是否滿足,如果報錯的話, 則應該如下正常所示:

  1. + aclocal 
  2. + libtoolize --copy --force 
  3. + autoheader 
  4. + automake --add-missing --copy --foreign 
  5. + autoconf 

繼續編譯安裝:

  1. ./configure --prefix=/usr/local/varnish --enable-dependency-tracking --enable-debugging-symbols --enable-developer-warnings -enable-extra-warnings 
  2. make && make install && cd ../ 

三、創建varnish用戶和組,以及varnish緩存文件和日志存放目錄:

  1. /usr/sbin/groupadd varnish 
  2. /usr/sbin/useradd -s /sbin/nologin  -g varnish varnish 
  3. mkdir -p /data/varnish/{cache,log} 
  4. chown  -R varnish:varnish /data/varnish/{cache,log} 

四、我的測試環境是兩臺Web機器,IP為192.168.1.103(域名為http://www.yuhongchun027.net)的varnish機器對后端IP為192.168.1.104和192.168.1.105的機器進行反向代理加速,其配置文件/usr/local/varnish/etc/varnish/better.vcl如下所示:

  1. backend rserver1 
  2. .host ="192.168.1.104"
  3. .port = "80"
  4. .probe = { 
  5. .timeout = 5s;          #等待多長時間超時 
  6. .interval = 2s;          #檢查時間間隔 
  7. .window = 10;         #varnish將維持10個sliding windows的結果 
  8. .threshold = 8;         #如果是8次.windows檢查是成功的,就宣告后端的Web機器是健康的 
  9. backend rserver2 
  10. .host ="192.168.1.105"
  11. .port = "80"
  12. .probe = { 
  13. .timeout = 5s
  14. .interval = 2s
  15. .window = 10
  16. .threshold = 8

#指定一個名為realserver組,使用random機制,權重越大,分配的訪問越多,可根據服務器性能來設定;而round-robin(輪詢)機制是不能指定weight的

  1. director realserver random { 
  2. .backend = rserver1
  3. .weight = 5
  4. .backend = rserver2
  5. .weight = 6

#定義能清理緩存的機器,這里只允許本機能用purge的方式清理

  1. acl purge { 
  2. "localhost"; 
  3. "127.0.0.1"; 
  4. sub vcl_recv 
  5. if (req.http.host ~"^(.*).yuhongchun027.net") 
  6. set req.backend =realserver
  7. else 
  8. error 200 "Nocahce for this domain"; 
  9. if (req.request =="PURGE") 
  10. if (!client.ip ~purge) 
  11. error 405"Not allowed."; 
  12. else 
  13. return (pipe); 

#獲取客戶端真實IP地址

  1. if(req.http.x-forwarded-for) 
  2. set reqreq.http.X-Forwarded-For = 
  3. req.http.X-Forwarded-For "," client.ip; 
  4. else 
  5. set req.http.X-Forwarded-For =client.ip; 

#對HTTP協議中的GET、HEAD請求進行緩存,對POST請求透過,讓其直接訪問后端Web服務器。之所以這樣配置,是因為POST請求一般是發送數據給服務器的,需要服務器接收、處理,所以不緩存;

  1. if (req.request !="GET" && req.request != "HEAD") 
  2. return (pipe); 
  3. if (req.http.Expect) 
  4. return (pipe); 
  5. if (req.http.Authenticate|| req.http.Cookie) 
  6. return (pass); 
  7. if (req.http.Cache-Control~ "no-cache") 
  8. return (pass); 

#對JSP或者PHP文件不緩存

  1. if(req.url ~"\.jsp" || req.url ~ "\.php" ) 
  2. return (pass); 
  3. else 
  4. return (lookup); 
  5. }sub vcl_pipe 
  6. return (pipe); 
  7. }sub vcl_pass 
  8. return (pass); 
  9. }sub vcl_hash 
  10. set req.hash += req.url; 
  11. if (req.http.host) 
  12. set req.hash +=req.http.host; 
  13. else 
  14. set req.hash +=server.ip; 
  15. return (hash); 
  16. }sub vcl_hit 
  17. if (req.request =="PURGE") 
  18. set obj.ttl = 0s
  19. error 200"Purged."; 
  20. if (!obj.cacheable) 
  21. return (pass); 
  22. return (deliver); 
  23. }sub vcl_miss 
  24. if (req.request =="PURGE") 
  25. error 404 "Not incache."; 
  26. if (req.http.user-agent ~"spider") 
  27. error 503 "Notpresently in cache"; 
  28. return (fetch); 
  29. sub vcl_fetch 
  30. if (req.request =="GET" && req.url ~ "\.(txt|js)$") 
  31. set beresp.ttl = 3600s
  32. else 
  33. set beresp.ttl = 30d
  34. if (!beresp.cacheable) 
  35. return (pass); 
  36. if (beresp.http.Set-Cookie) 
  37. return (pass); 
  38. return (deliver); 
  39. sub vcl_deliver { 
  40. if (obj.hits > 0) { 
  41. set resp.http.X-Cache"HIT  FROM www.yuhongchun027.net"
  42. } else { 
  43. set resp.http.X-Cache"MISS FROM www.yuhongchun027.net"
  44. return (deliver); 

五、啟動varnish的命令很長,如下所示:

 /usr/local/varnish/sbin/varnishd -n /data/varnish/cache -f /usr/local/varnish/etc/varnish/better.vcl -a 0.0.0.0:80 -s file,/data/varnish/varnish_cache.data,8G  -p user=varnish -p group=varnish -p default_ttl=14400 -p thread_pool_max=8000 -p send_timeout=20 -w 5,51200,30 -T 127.0.0.1:3500  -p /usr/local/varnish/var/varnish.pid

驗證其是否生效可以用curl -I命令,如下所示:

  1. [root@localhost cache]# curl -I http://www.yuhongchun027.net/ 
  2. HTTP/1.1 200 OK 
  3. Server: Apache/2.2.3 (CentOS) 
  4. Last-Modified: Wed, 28 Aug 2013 16:27:33 GMT 
  5. ETag: "10d242-e-776b6740" 
  6. Content-Type: text/html; charset=UTF-8 
  7. Content-Length: 14 
  8. Date: Wed, 21 Aug 2013 17:47:48 GMT 
  9. X-Varnish: 1584727079 1584726982 
  10. Age: 10101 
  11. Via: 1.1 varnish 
  12. Connection: keep-alive 
  13. X-Cache: HIT  FROM www.yuhongchun027.net 

六、如果vcl配置文件發生改動,想要不重啟而直接reload,可以用如下操作,可以在本機上進行telnet操作,連接3500管理端口:

  1. telnet 127.0.0.1 3500 
  2. vcl.load newconfig /usr/local/varnish/etc/varnish/better.vcl 
  3. 200 13 
  4. VCL compiled. 
  5. vcl.use newconfig 
  6. 200 0 

如果顯示有200字樣,則表示已經正常reload了,newconfig這個名字是自己定義的,熟悉varnish操作的朋友應該也清楚,通過telnet連接本機還可以進行清理緩存。

七、用varnishadm命令來清理緩存,例子如下所示:

清除所有緩存:

  1. /usr/local/varnish/bin/varnishadm -T 192.168.1.103:3500 url.purge *$ 

清除image目錄下所有緩存:

  1. /usr/local/varnish/bin/varnishadm -T 192.168.1.103:3500 url.purge /image/ 

查看最近清除的詳細url列表,可執行如下命令:

  1. /usr/local/varnish/bin/varnishadm -T 192.168.1.103:3500 purge.list 

另外,緩存命中率的高低直接說明了varnish的運行狀態和效果,如果緩存率命中率過低,我們應該對varnish配置進行檢查調整來進行提高,查看其命中率命令如下所示:

  1. /usr/local/varnish/bin/varnishstat -n /data/varnish/cache 

八、內核優化如下所示:

編輯/etc/sysctl.conf,添加如下選項:

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.ip_local_port_range = 1024 65000

net.ipv4.tcp_max_syn_backlog = 8192

net.ipv4.tcp_max_tw_buckets = 5000

net.ipv4.tcp_max_syn_backlog = 65536

net.core.netdev_max_backlog =  32768

net.core.somaxconn = 32768

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_synack_retries = 2

net.ipv4.tcp_syn_retries = 2

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_mem = 94500000 915000000 927000000

net.ipv4.tcp_max_orphans = 3276800

執行如下命令,讓改動配置立即生效:

  1. /sbin/sysctl -p 

注意:老生常談的ulimit的問題,這個話題說得太多了,這里實在不想再提了,記得將

  1. ulimit -SHn 65535 

放在/etc/rc.local里即可,記得在啟動varnish之前將此命令手動執行一遍,另外,在工作中發現,CentOS6.x x86_64下更改ulimit跟CentOS5.x x86_64略有不同,這點也請大家注意。

以上即為varnish-2.1.5在CentOS5.8下的安裝配置過程,記錄下作為工作筆記,年紀大了,起個備忘作用而矣。

 

個人博客:http://andrewyu.blog.51cto.com

微博地址:http://weibo.com/yuhongchun027

【聲明】本文作者:余洪春(撫琴煮酒),英文名Andrew.Yu。在51CTO系統頻道首發,轉載請注明作者和出處。

 

責任編輯:黃丹 來源: 51CTO.com
相關推薦

2012-10-11 14:59:31

CentosFastDFS

2011-04-01 12:22:35

2011-02-23 09:55:33

Centos安裝vsftpd

2011-03-31 09:02:22

Windows安裝MRTG

2011-04-01 14:09:44

CentOS 5.5zabbix

2012-04-02 15:29:00

httpvarnish

2011-03-02 09:47:51

PureftpCentos

2011-03-02 10:09:53

CentosPureftp

2011-03-31 10:31:18

Ubuntu安裝MRTG

2010-05-21 15:12:58

Centos下SVN的

2012-03-18 22:33:15

centosxen

2010-01-13 11:17:50

2011-03-11 12:57:30

CentosLAMP

2010-03-29 14:48:58

CentOS系統

2020-09-25 17:10:13

LinuxMySQL 8.0

2011-09-02 14:07:59

2012-08-17 09:48:55

MongoDB

2021-01-12 09:55:29

LinuxCntlm代理

2010-01-13 15:50:23

CentOS安裝

2010-01-14 13:47:30

CentOS extm
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人精品免费视频大全最热 | 亚洲视频在线播放 | 欧美激情综合色综合啪啪五月 | 九九热视频这里只有精品 | 一级毛片免费视频观看 | 羞羞视频在线观看 | 欧美日韩三级 | 国产美女黄色片 | 亚洲国产精品一区二区久久 | 97精品超碰一区二区三区 | 国产 欧美 日韩 一区 | 成人在线免费电影 | 日本不卡高字幕在线2019 | 欧美日韩在线免费 | 99久久久久 | 韩国精品在线观看 | 国产区精品 | 精品国产综合 | 亚洲乱码国产乱码精品精98午夜 | 美日韩免费视频 | 中文字幕在线观看av | 欧美一级一区 | 嫩草视频在线 | 久久精品视频网站 | 麻豆精品一区二区三区在线观看 | 国产亚洲精品综合一区 | 成人性视频在线播放 | 久久久精品 | 日韩精品一区二区三区免费视频 | 久久久av一区 | 日本 欧美 三级 高清 视频 | 婷婷开心激情综合五月天 | 81精品国产乱码久久久久久 | 亚洲视频免费在线观看 | 欧美一区二区三区四区五区无卡码 | 亚洲一区二区三区免费视频 | 91免费入口 | 狠狠干网站 | 久久久久久久久蜜桃 | 久久久精品视频一区二区三区 | 欧美日韩国产高清 |