热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Varnish服务器的管理和维护

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

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

命令参数 参数含义  

-a address:port 表示varnish对httpd的监听地址及其端口  

-b address:port 表示后端服务器地址及其端口  

-d 表示使用debug调试模式  

-f file 指定varnish服务器的配置文件  

-p param=value 指定服务器参数,用来优化varnish性能  

-P file Varnish进程PID文件存放路径  

-n dir 指定varnish的工作目录  

-s kind[,storageoptions] 指定varnish缓存内容的存放方式,常用的方式有:“-s file,,”。  

其中“”指定缓存文件的存放路径,“”指定缓存文件的大小  

-t 指定缺省的TTL值  

-T address:port 设定varnish的telnet管理地址及其端口  

-w int[,int[,int]] 设定varnish的工作线程数,常用的方式有:  

-w min,max  

-w min,max,timeout  

例如:-w5,51200,30,这里需要说明下,在varnish2.0版本以后,最小启动的线程数不能设定过大,设置过大,会导致varnish运行异常缓慢。
-V 显示varnish版本号和版权信息

二、 配置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"  

这里需要说明的是,缓存文件“varnish_cache.data”在32位操作系统下,最大仅能支持2G,如果需要更大缓存文件则需要安装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  ]  

三、管理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小时。关于rotatelogs命令用法,这里不再详细讲述。
通过对varnish日志的监控,可以知道varnish的运行状态和情况。
接着,将此脚本进行授权:

[root@varnish-server ~]#chmod 755 /etc/init.d/varnishncsa  

最后就可以通过如下方式,进行启动、关闭日志等操作了:

[root@varnish-server ~]#/etc/init.d/varnishncsa  {start|stop }  

四、管理Varnish

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/1    00:00:00 /usr/sbin/rotatelogs /data/varnish/log/varnish.%Y.%m.%d.%H.log 3600 480  

root     29646     1  0 00:21 ?        00:00:00 /usr/local/varnish/sbin/varnishd -P /var/run/varnish.pid -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  

varnish  29647 29646  0 00:21 ?        00:00:00 /usr/local/varnish/sbin/varnishd -P /var/run/varnish.pid -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  

从命令执行结果可知,PID为29615和29616的进程是varnish的日志输出进程,而PID为29646的进程是varnishd的主进程,并且派生出了一个PID为29647的子进程。这点跟apache类似。
如果varnish正常启动的话,80端口和3500端口应该处于监听状态,通过如下命令可以查看:

[root@varnish-server ~]# netstat -antl|grep 3500  

tcp        0      0 127.0.0.1:3500              0.0.0.0:*                   LISTEN        

[root@varnish-server ~]#netstat -


推荐阅读
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
author-avatar
直由飞翔_447
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有