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

简介: 本节书摘来自华章社区《高性能Linux服务器构建实战》一书中的第2章,第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常用参数的使用方法和含义。


ca5a6204a74ca52df8f9b0f031ad09b3ec6a1fd7

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 }
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1天前
|
运维 Linux 程序员
最全查看Linux系统状态脚本_linux查询所有服务器信息的脚本,墙都不扶就服你
最全查看Linux系统状态脚本_linux查询所有服务器信息的脚本,墙都不扶就服你
最全查看Linux系统状态脚本_linux查询所有服务器信息的脚本,墙都不扶就服你
|
1天前
|
Web App开发 运维 安全
最全构建属于自己的 Linux 发行版_定制自制linux(3),开发人员必学
最全构建属于自己的 Linux 发行版_定制自制linux(3),开发人员必学
最全构建属于自己的 Linux 发行版_定制自制linux(3),开发人员必学
|
5天前
|
Linux 网络安全
linux/服务器使用scp将一个服务器文件转移到另一个服务器上
linux/服务器使用scp将一个服务器文件转移到另一个服务器上
33 3
|
5天前
|
应用服务中间件 网络安全 Apache
构建高性能Web服务器:Nginx vs Apache
【5月更文挑战第16天】Nginx与Apache是两种主流Web服务器,各具优势。Nginx以其轻量级、高并发处理能力和反向代理功能见长,适合大型网站和高并发场景;而Apache以功能丰富、稳定性强闻名,适合企业网站和需要多种Web服务功能的场景。在性能上,Nginx处理高并发更优,Apache则可能在高负载时遭遇瓶颈。在选择时,应根据实际需求权衡。
|
6天前
|
监控 JavaScript 网络协议
Linux系统之安装uptime-kuma服务器监控面板
【5月更文挑战第12天】Linux系统之安装uptime-kuma服务器监控面板
20 0
|
6天前
|
负载均衡 Go 调度
使用Go语言构建高性能的Web服务器:协程与Channel的深度解析
在追求高性能Web服务的今天,Go语言以其强大的并发性能和简洁的语法赢得了开发者的青睐。本文将深入探讨Go语言在构建高性能Web服务器方面的应用,特别是协程(goroutine)和通道(channel)这两个核心概念。我们将通过示例代码,展示如何利用协程处理并发请求,并通过通道实现协程间的通信和同步,从而构建出高效、稳定的Web服务器。
|
6天前
|
消息中间件 安全 Linux
服务器(Linux)在线下载activeMQ以及配置打开
服务器(Linux)在线下载activeMQ以及配置打开
19 3
|
6天前
|
Java Linux
Linux(服务器) 装JDK
Linux(服务器) 装JDK
21 1
|
6天前
|
关系型数据库 MySQL Linux
服务器Linux系统配置mysql数据库主从自动备份
这是一个基本的配置主从复制和设置自动备份的指南。具体的配置细节和命令可能因您的环境和需求而有所不同,因此建议在操作前详细阅读MySQL文档和相关资源,并谨慎操作以避免数据丢失或不一致。
21 3