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

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 }

时间: 2024-12-03 03:21:57

《高性能Linux服务器构建实战》——2.4节运行Varnish的相关文章

《高性能Linux服务器构建实战》——2.1节初识Varnish

2.1 初识Varnish 2.1.1 Varnish概述 Varnish是一款高性能且开源的反向代理服务器和HTTP 加速器,它的开发者Poul-Henning Kamp是FreeBSD核心的开发人员之一.Varnish采用全新的软件体系机构,和现在的硬件体系配合紧密.在1975年时,储存媒介只有两种:内存与硬盘.而现在计算机系统的内存除了主存外,还包括CPU内的L1.L2,有的还包括L3快取,硬盘上也有自己的快取装置,因此Squid Cache自行处理数据替换的架构不可能得知这些情况而做到最

《高性能Linux服务器构建实战:系统安全、故障排查、自动化运维与集群架构》——第1章 Linux服务器安全运维 1.1 账户和登录安全

第1章 Linux服务器安全运维 1.1 账户和登录安全 安全是IT行业一个老生常谈的话题了,最近的"棱镜门"事件折射出了很多安全问题,处理好信息安全问题已变得刻不容缓.因此作为一名运维人员,必须了解一些安全运维准则,同时,要保护自己所负责的业务,首先要站在攻击者的角度思考问题,才能修补任何潜在的威胁和漏洞. 账户安全是系统安全的第一道屏障,也是系统安全的核心,保障登录账户的安全,在一定程度上可以提高服务器的安全级别,本节重点介绍Linux系统登录账户的安全设置方法.1.1.1 删除特

《高性能Linux服务器构建实战》——1.9节本章小结

1.9 本章小结本章主要介绍了对高性能HTTP服务器Nginx的安装.配置.管理和使用,以及Nginx在性能优化方面的一些经验和技巧,并通过实例分别演示了Nginx与PHP整合,Nginx和Java.Perl整合的过程.通过本章的学习,读者能够对Nginx有一个清晰的认识,并且可以熟练地配置和管理Nginx服务器.随着Nginx知识的普及,相信Nginx会越来越受欢迎.如果你还没有使用Nginx来搭建Web应用系统,不妨现在尝试一下.

《高性能Linux服务器构建实战》——3.1节Memcached基础

3.1 Memcached基础 3.1.1 什么是Memcached Memcached是一个免费开源的.高性能的.具有分布式内存对象的缓存系统,它通过减轻数据库负载加速动态Web应用.最初版本由LiveJournal的Brad Fitzpatrick在2003年开发完成.目前全世界很多用户都在使用它来构建自己的大负载网站或提高自己的高访问网站的响应速度.Memcache是这个项目的名称,而Memcached是服务器端的主程序文件名. 缓存一般用来保存一些经常存取的对象或数据(例如,浏览器会把经

《高性能Linux服务器构建实战》——1.7节实战Nginx与PHP(FastCGI)的安装、配置与优化

1.7 实战Nginx与PHP(FastCGI)的安装.配置与优化 1.7.1 什么是 FastCGI FastCGI是一个可伸缩地.高速地在HTTP server和动态脚本语言间通信的接口.多数流行的HTTP server都支持FastCGI,包括Apache.Nginx和lighttpd等.同时,FastCGI也被许多脚本语言支持,其中就有PHP. FastCGI是从CGI发展改进而来的.传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执

《高性能Linux服务器构建实战》——2.5节管理Varnish

2.5 管理Varnish 2.5.1 查看Varnish进程 通过上一节的设置,Varnish已经可以启动起来了.执行如下命令可以查看Varnish是否正常启动. [root@varnish-server ~]# ps -ef|grep varnish root 29615 1 0 00:20 pts/1 00:00:00 /usr/local/varnish/bin/varnishncsa -n /data/varnish/cache -f root 29616 1 0 00:20 pts/

《高性能Linux服务器构建实战》——1.4节Nginx的安装与配置

1.4 Nginx的安装与配置 1.4.1 下载与安装Nginx Nginx的官方网站是http://sysoev.ru/nginx/,英文主页为http://nginx.net,从这里可以获得Nginx的最新版本信息.Nginx有三个版本:稳定版.开发版和历史稳定版.开发版更新较快,包含最新的功能和bug的修复,但同时也可能会出现新的bug.开发版一旦更新稳定下来,就会被加入稳定版分支中.然而有些新功能不一定会被加到稳定版中去.稳定版更新较慢,但是bug较少,可以作为生产环境的首选,因此通常建

《高性能Linux服务器构建实战》——3.2节剖析Memcached的工作原理

3.2 剖析Memcached的工作原理 3.2.1 Memcached的工作过程 Memcached是一种C/S模式,在服务器端启动服务守护进程,此时可以指定监听的IP地址.端口号以及使用多少内存来处理客户端的请求等几个关键参数.服务器端的服务启动后就一直处于等待处理客户端的连接状态.Memcached 是由C语言来实现的,采用的是异步I/O,其实现方式是基于事件的单进程和单线程的.使用libevent 作为事件通知机制,多个服务器端可以协同工作,但这些服务器端之间没有任何通信关系,每个服务器

《高性能Linux服务器构建实战》——1.8节实战Nginx与Perl、Java的安装与配置

1.8 实战Nginx与Perl.Java的安装与配置 通过前面的介绍,可以对Nginx有了一个比较全面的认识:Nginx本身是一个静态的HTTP服务器和反向代理服务器,它不支持动态页面,所谓的Nginx对动态程序的支持都是通过反向代理功能实现的.下面要讲述的Nginx对Perl和JSP的支持,就是通过Nginx的反向代理功能来完成的.Nginx对Perl和JSP的支持在实现细节上可能有一定差别,但是实现原理是完全一样的. Nginx的安装这里不再讲述,假定Nginx的安装路径为/usr/loc