导航

不许杀人,也不许放火

« 钉子户还在坚持马格瑞姆的玩具店 »

varnish@webmin

下午去买了个硬盘盒,去了趟药店(年纪大了什么毛病都有了),刚要回来,被个鸟人拎到单位,那个鸟人事先发了个硬盘过来,今天来干活之前也不约一下,直接从外地过来到了单位就问值班的要硬盘,当然被我锁库房里了,库房钥匙当然不是谁都有的,靠,鸟人还说今天一定要,晚上要回去。明天去做个预约操作工单,没有这个单子,不另派人手。

折腾完了,回家洗个澡,拖着看完一个垃圾片,开始学习。

下载webmin,解压,复制到/usr/local/webmin。将varnish trunk目录下的varnish-tools下的webmin里的东西弄到/usr/local/varnish目录里,然后运行/usr/local/webmin下的setup.pl,回答一些问题,完成webmin的安装。

修改varnish的config.info,设置varnish的管理地址和端口,按说应该是这样的(虽然没有文档,连个README都没有),奇怪的是,设置了好像也没用,后来我只好直接改了varnishadm-lib.pl,直接设置了IP和端口,晕,也许是我格式写错了。

通过WEB访问,在server栏目下就有了一个varnish http accelerator

点进去就OK了

由于webmin是第一次玩,varnish在webmin里管理的相关文档在google上根本就搜捕到,还是花了些时间摸索的。

  • quote 1.powerv
  • 我已经装好varnish1.1.2 trunk ,但我运行/usr/local/varnish/bin/varnishstat -n /mycachedir/ 看到全是0。还有,我使用的方法和你教程基本一样,使用varnish用户启动varnish,但我在看到还是root启动的,奇怪了。能不能加你QQ或者MSN? mymsn: swlft(at)163.com 谢谢,看在我那么支持你的份上。加吧。哈哈
  • 2008-1-15 17:33:25 回复该留言
  • quote 2.powerv
  • 我使用varnish1.1.2 trunk基本按照你BLOG上的方式安装成功了。也运行起来了。但/usr/local/varnish/bin/varnishstat -n /mycachedir 全部都是0,证明没被缓存。另外就是我使用varnish用户启动varnish,但我看到还是ROOT启动的。我只有1台机器,所以运行varnish和web是在同一台机器上面。能加你QQ或者MSN吗?mymsn:swlft(at)163.com ,加吧。看我那么支持你的份上。哈哈。谢谢了。
  • 2008-1-15 17:37:34 回复该留言
  • quote 3.powerv
  • 我的启动文件:
    #侦听80端口
    /usr/local/varnish/sbin/varnishd -f /usr/local/varnish/cache.vcl \
    -a 0.0.0.0:80 \
    -s file,/mycachedir,5120M \
    -p user=varnish -p group=varnish \
    -p default_ttl=14400 -p thread_pool_max=8000 -p send_timeout=20 \
    -p backend_http11=on -p client_http11=on \
    -p srcaddr_ttl=720 \
    -w 4000,12000,10 -T 127.0.0.1:808 \
    -P /usr/local/varnish/var/varnish.pid
    #日志记录
    /usr/local/varnish/bin/varnishncsa -a -w /var/vcache/varnish.log &
  • 2008-1-15 17:41:04 回复该留言
  • quote 4.powerv
  • backend mywebserver {
    set backend.host = "210.**.**.**公网固定IP";
    set backend.port = "80";
    }

    acl purge {
    "localhost";
    "127.0.0.1";
    "192.168.0.1"/24;
    }

    sub vcl_recv {
    if (req.request == "PURGE") {
    if (!client.ip ~ purge) {
    error 405 "Not allowed.";
    }
    lookup;
    }

    if (req.http.host ~ ".abc.com.cn") {
    set req.backend = mywebserver;
    if (req.request != "GET" && req.request != "HEAD") {
    pipe;
    }
    else {
    lookup;
    }
    }
    else {
    error 404 "Powerv Cache Server";
    lookup;
    }
    }

    sub vcl_hit {
    if (req.request == "PURGE") {
    set obj.ttl = 0s;
    error 200 "Purged.";
    }
    }
  • 2008-1-15 17:43:42 回复该留言
  • quote 5.powerv

  • sub vcl_miss {
    if (req.request == "PURGE") {
    error 404 "Not in cache.";
    }
    }

    sub vcl_fetch {
    if (req.request == "GET" && req.url ~ "\.(txt|js)$") {
    set obj.ttl = 3600s;
    }
    else {
    set obj.ttl = 30d;
    }
    }
  • 2008-1-15 17:44:52 回复该留言
  • quote 6.minuteman
  • 不好意家里的机器上没MSN
    在同一机器上,是否应该是web服务在非80端口上(比如8080),varnish在80端口上?
    backend的设置,是要连到后面的web服务商的,也许比如set backend.port = "8080";比较合适?
    varnishstat看到的,应该有三列,如果访问量小的话,也许你应该看第一列,后面是单位时间内的请求数、连接数等等,第一列是总数。需要关注的是Cache hits和Cache misses。
    另外varnish起来是root的主进程,他会以你指定的用户身份启动另一个进程,来处理请求。
    powerv 于 2008-1-16 0:41:29 回复
    其实,我就一直有一个疑问。因为用户总是先访问80端口的。我原来squid的时候,就是前面的squid使用公网的80端口,而apache使用localhost的80,这样是正常的。我一直被资料所困惑,我以为varnish使用非80端口没关系,反正是也监听80,只要80有响应,它就会做出判断。我等下试用varnish做80看下情况。谢谢。
  • 2008-1-16 0:41:30 回复该留言
  • quote 7.小D
  • 讲解一下 为什么 VARNISH 不缓存的问题 我也遇到这个问题 我晕死了
  • 2008-5-11 13:36:49 回复该留言
  • quote 8.minuteman
  • 一般情况下是因为浏览器主动要求不缓存或者你的web应用要求不缓存内容
  • 2008-5-12 12:54:52 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Search

控制面板

首页

最近发表

友情链接

Powered By Z-Blog