《高性能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 }
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
12月前
|
人工智能 JavaScript API
零基础构建MCP服务器:TypeScript/Python双语言实战指南
作为一名深耕技术领域多年的博主摘星,我深刻感受到了MCP(Model Context Protocol)协议在AI生态系统中的革命性意义。MCP作为Anthropic推出的开放标准,正在重新定义AI应用与外部系统的交互方式,它不仅解决了传统API集成的复杂性问题,更为开发者提供了一个统一、安全、高效的连接框架。在过去几个月的实践中,我发现许多开发者对MCP的概念理解透彻,但在实际动手构建MCP服务器时却遇到了各种技术壁垒。从环境配置的细节问题到SDK API的深度理解,从第一个Hello World程序的调试到生产环境的部署优化,每一个环节都可能成为初学者的绊脚石。因此,我决定撰写这篇全面的实
2645 67
零基础构建MCP服务器:TypeScript/Python双语言实战指南
|
9月前
|
弹性计算 人工智能 前端开发
在阿里云ECS上部署n8n自动化工作流:U2实例实战
本文介绍如何在阿里云ECS的u2i/u2a实例上部署开源工作流自动化平台n8n,利用Docker快速搭建并配置定时任务,实现如每日抓取MuleRun新AI Agent并推送通知等自动化流程。内容涵盖环境准备、安全组设置、实战案例与优化建议,助力高效构建低维护成本的自动化系统。
2092 5
|
11月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
Linux 网络安全 数据安全/隐私保护
使用Linux系统的mount命令挂载远程服务器的文件夹。
如此一来,你就完成了一次从你的Linux发车站到远程服务器文件夹的有趣旅行。在这个技术之旅中,你既探索了新地方,也学到了如何桥接不同系统之间的距离。
2066 21
|
Java Linux 网络安全
Linux云端服务器上部署Spring Boot应用的教程。
此流程涉及Linux命令行操作、系统服务管理及网络安全知识,需要管理员权限以进行配置和服务管理。务必在一个测试环境中验证所有步骤,确保一切配置正确无误后,再将应用部署到生产环境中。也可以使用如Ansible、Chef等配置管理工具来自动化部署过程,提升效率和可靠性。
1104 13
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
850 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
|
12月前
|
JSON 前端开发 Go
Go语言实战:创建一个简单的 HTTP 服务器
本篇是《Go语言101实战》系列之一,讲解如何使用Go构建基础HTTP服务器。涵盖Go语言并发优势、HTTP服务搭建、路由处理、日志记录及测试方法,助你掌握高性能Web服务开发核心技能。
|
12月前
|
监控 Linux 网络安全
FinalShell SSH工具下载,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux
FinalShell是一款国人开发的多平台SSH客户端工具,支持Windows、Mac OS X和Linux系统。它提供一体化服务器管理功能,支持shell和sftp同屏显示,命令自动提示,操作便捷。软件还具备加速功能,提升访问服务器速度,适合普通用户和专业人士使用。
3747 0

热门文章

最新文章