《高性能Linux服务器构建实战》——2.4节运行Varnish

    xiaoxiao2021-08-15  276

    2.4 运行Varnish

    2.4.1 varnishd指令Varnish启动的命令是/usr/local/varnish/sbin/varnishd。此命令参数较多,用法比较复杂,在命令行执行“/usr/local/varnish/sbin/varnishd –h”即可得到varnishd的详细用法。表2-6列出了varnishd常用参数的使用方法和含义。

    2.4.2 配置Varnish运行脚本在安装Varnish时,已经将Varnish的管理脚本复制到相应的目录下,这里稍作修改即可。首先修改/etc/sysconfig/varnish文件,根据这里的要求,配置好的文件如下:

    NFILES=131072 MEMLOCK=82000 DAEMON_OPTS="-a 192.168.12.246:80 \ -T 127.0.0.1:3500 \ -f /usr/local/varnish/etc/vcl.conf \ -u varnish -g varnish \ -w 2,51200,10 \ -n /data/varnish/cache \ -s file, /data/varnish/cache/varnish_cache.data,4G"

    这里需要说明的是,在32位操作系统下,最大只能支持2GB的缓存文件varnish_cache.data,如果需要更大的缓存文件,则需要安装64位的Linux操作系统。接下来要修改的文件是/etc/init.d/varnish,找到如下几行,修改相应的路径即可。

    exec="/usr/local/varnish/sbin/varnishd" prog="varnishd" config="/etc/sysconfig/varnish" lockfile="/var/lock/subsys/varnish"

    其中,exec用于指定varnishd的路径,只需修改为Varnish安装路径下对应的varnishd文件即可;config用于指定Varnish守护进程配置文件路径。两个文件修改完毕,就可以授权、运行/etc/init.d/varnish脚本了。执行过程如下:

    [root@varnish-server ~]#chmod 755 /etc/init.d/varnish [root@varnish-server ~]#/etc/init.d/varnish Usage:/etc/init.d/varnish {start|stop|status|restart|condrestart|try-restart|reload|force-reload} 从后两行的输出可知,此脚本功能强大,可以对Varnish进行启动、关闭、查看状态、重启等操作。最后,启动Varnish。过程如下: [root@varnish-server ~]# /etc/init.d/varnish start Starting varnish HTTP accelerator: [ OK ]

    2.4.3 管理Varnish运行日志Varnish是通过内存共享的方式提供日志的,它提供了两种日志输出形式,分别是: 通过自带的varnishlog指令获得Varnish详细的系统运行日志。例如:

    [root@varnish-server ~]#/usr/local/varnish/bin/varnishlog -n /data/varnish/cache 0 CLI - Rd ping 0 CLI - Wr 200 PONG 1279032175 1.0 0 CLI - Rd ping 0 CLI - Wr 200 PONG 1279032178 1.0

    通过自带的varnishncsa指令得到类似Apache的combined输出格式的日志。例如:

    [root@varnish-server ~]#/usr/local/varnish/bin/varnishncsa -n /data/varnish/cache 也可以将日志输出到一个文件中,通过“-w”参数指定即可。 [root@varnish-server ~]#/usr/local/varnish/bin/varnishncsa -n /data/varnish/cache \ >-w /data/varnish/log/varnish.log

    在Varnish的两种日志输出形式中,第一种在大多数情况下不是必须的,这里重点介绍第二种日志输出形式的配置方式。下面编写一个名为varnishncsa的shell脚本,并把此文件放到/etc/init.d目录下。varnishncsa脚本的完整内容如下所示:

    #!/bin/sh if [ "$1" = "start" ];then /usr/local/varnish/bin/varnishncsa -n /data/varnish/cache -f |/usr/sbin/rotatelogs /data/varnish/log/varnish.%Y.%m.%d.%H.log 3600 480 & elif [ "$1" = "stop" ];then killall varnishncsa else echo $0 "{start|stop}" fi

    在这个脚本中,通过管道方式把日志导入rotatelogs中,而rotatelogs是一个文件分割工具,它可以根据指定时间或者大小等方式来分割日志文件,这样就避免了日志文件过大而造成的性能问题。其中,“3600”表示一个小时,也就是每个小时生成一个日志文件,“480”表示一个时区参数,中国是第八时区,相对于UTC相差480分钟。如果不设置480这个参数,将导致日志记录时间和服务器时间相差8小时。通过对Varnish日志的监控,可以知道Varnish的运行状态和情况。接着对此脚本进行授权。

    [root@varnish-server ~]#chmod 755 /etc/init.d/varnishncsa 最后可以通过如下方式,对日志进行启动和关闭等操作。 [root@varnish-server ~]#/etc/init.d/varnishncsa {start|stop } 相关资源:七夕情人节表白HTML源码(两款)

    最新回复(0)