热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Varnish的安装配置方法

wgethttp://repo.varnish-cache.org/source/varnish-3.0.0.tar.gztarzxfvarnish-3.0.0.tar.gzcdvarnish-3.0.0./configure?prefix/usr/local/varnishPKG_CONFIG_PATH/usr/li

wget http://repo.varnish-cache.org/source/varnish-3.0.0.tar.gz
tar zxf varnish-3.0.0.tar.gz
cd varnish-3.0.0
./configure ?prefix=/usr/local/varnish PKG_CONFIG_PATH=/usr/lib/pkgconfig

make
make install

cp redhat/varnish.initrc /etc/init.d/varnish
cp redhat/varnish.sysconfig /usr/local/varnish/etc/init

cd /usr/local/vernish
mkdir cache
mkdir log

 

default.vcl

backend webserver {
.host = “192.168.1.105″;
.port = “80″;
}

sub vcl_recv {
if (req.http.x-forwarded-for) {
#set req.http.X-Forwarded-For = req.http.X-Forwarded-For “, ” client.ip;
} else {
set req.http.X-Forwarded-For = client.ip;
}

if (req.request != “GET” &&
req.request != “HEAD” &&
req.request != “PUT” &&
req.request != “POST” &&
req.request != “TRACE” &&
req.request != “OPTIONS” &&
req.request != “DELETE”) {
return (pipe);
}
if (req.request != “GET” && req.request != “HEAD”) {
return (pass);
}

#if (req.http.host ~ “^(.*).ixdba.net” || req.http.host ~ “^(.*).ixdba.cn”) {
# set req.backend = webserver;
# }

if (req.url ~ “\.(jsp|do|php)($|\?)”) {
return (pass);
} else {
return (lookup);
}
}

sub vcl_pipe {
return (pipe);
}

sub vcl_pass {
return (pass);
}

sub vcl_hash {
hash_data(req.url);
if (req.http.host) {
hash_data(req.http.host);
} else {
hash_data(server.ip);
}
return (hash);
}

sub vcl_hit {

return (deliver);
}

sub vcl_miss {
return (fetch);
}

sub vcl_fetch {
if (beresp.ttl <= 0s ||
beresp.http.Set-COOKIE ||
beresp.http.Vary == “*”) {
/*
* Mark as “Hit-For-Pass” for the next 2 minutes
*/
set beresp.ttl = 120 s;
return (hit_for_pass);
}
return (deliver);
}

sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = “HIT from 192.168.1.110″;
} else {
set resp.http.X-Cache = “MISS from 192.168.1.110″;
}
return (deliver);
}

 

配置daemon

#! /bin/sh
#
# varnish Control the Varnish Cache
#
# chkconfig: ? 90 10
# description: Varnish is a high-perfomance HTTP accelerator
# processname: varnishd
# config: /etc/sysconfig/varnish
# pidfile: /var/run/varnishd.pid

### BEGIN INIT INFO
# Provides: varnish
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start:
# Default-Stop:
# Should-Start: $syslog
# Short-Description: start and stop varnishd
# Description: Varnish is a high-perfomance HTTP accelerator
### END INIT INFO

# Source function library.
. /etc/init.d/functions

retval=0
pidfile=/usr/local/varnish/log/varnish.pid

exec=”/usr/local/varnish/sbin/varnishd”
reload_exec=”/usr/local/varnish/bin/varnish_reload_vcl”
prog=”varnishd”
cOnfig=”/usr/local/varnish/etc/init”
lockfile=”/usr/local/varnish/log/varnish.lock”

# Include varnish defaults
[ -e /usr/local/varnish/etc/init ] && . /usr/local/varnish/etc/init
start() {

if [ ! -x $exec ]
then
echo $exec not found
exit 5
fi

if [ ! -f $config ]
then
echo $config not found
exit 6
fi
echo -n “Starting Varnish Cache: ”

# Open files (usually 1024, which is way too small for varnish)
ulimit -n ${NFILES:-131072}

# Varnish wants to lock shared memory log in memory.
ulimit -l ${MEMLOCK:-82000}

# $DAEMON_OPTS is set in /etc/sysconfig/varnish. At least, one
# has to set up a backend, or /tmp will be used, which is a bad idea.
if [ "$DAEMON_OPTS" = "" ]; then
echo “\$DAEMON_OPTS empty.”
echo -n “Please put configuration options in $config”
return 6
else
# Varnish always gives output on STDOUT
daemon ?pidfile $pidfile $exec -P $pidfile “$DAEMON_OPTS” > /dev/null 2>&1
retval=$?
if [ $retval -eq 0 ]
then
touch $lockfile
echo_success
echo
else
echo_failure
echo
fi
return $retval
fi
}

stop() {
echo -n “Stopping Varnish Cache: ”
killproc -p $pidfile $prog
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}

restart() {
stop
start
}

reload() {
if [ "$RELOAD_VCL" = "1" ]
then
$reload_exec
else
force_reload
fi
}

force_reload() {
restart
}

rh_status() {
status -p $pidfile $prog
}

rh_status_q() {
rh_status >/dev/null 2>&1
}

configtest() {
if [ -f "$VARNISH_VCL_CONF" ]; then
$exec -f “$VARNISH_VCL_CONF” -C -n /tmp > /dev/null && echo “Syntax ok”
else
echo “VARNISH_VCL_CONF is unset or does not point to a file”
fi
}

# See how we were called.
case “$1″ in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
restart
;;
configtest)
configtest
;;
*)
echo “Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}”

exit 2
esac

exit $?

 

/usr/local/varnish/etc/init启动选项

NFILES=131072
MEMLOCK=82000
DAEMON_OPTS=”-a 192.168.1.110:8888 \
-T 192.168.1.110:200 \
-f /usr/local/varnish/etc/varnish/default.vcl \
-u root -g root \
-s file,/usr/local/varnish/cache/varnish.bin,256M”

 


推荐阅读
  • 本文详细介绍了暂估入库的会计分录处理方法,包括账务处理的具体步骤和注意事项。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 郑州大学在211高校中的地位与排名解析
    本文将详细解读郑州大学作为一所位于河南省的211和双一流B类高校,在全国211高校中的地位与排名,帮助高三学生更好地了解这所知名学府的实力与发展前景。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 优化ASM字节码操作:简化类转换与移除冗余指令
    本文探讨如何利用ASM框架进行字节码操作,以优化现有类的转换过程,简化复杂的转换逻辑,并移除不必要的加0操作。通过这些技术手段,可以显著提升代码性能和可维护性。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 电子元件封装库:三极管、MOS管及部分LDO(含3D模型)
    本资源汇集了常用的插件和贴片三极管、MOS管以及部分LDO的封装,涵盖TO和SOT系列。所有封装均配有高质量的3D模型,共计96种,满足日常设计需求。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • CSS 布局:液态三栏混合宽度布局
    本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 小红书提高MCN机构入驻门槛,需缴纳20万元保证金
    近期,小红书对MCN机构的入驻要求进行了调整,明确要求MCN机构在入驻时需缴纳20万元人民币的保证金。此举旨在进一步规范平台内容生态,确保社区的真实性和用户体验。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 动物餐厅高效获取小鱼干攻略
    本文将介绍2023年动物餐厅中快速赚取小鱼干的有效方法,帮助玩家更轻松地积累资源。 ... [详细]
  • This guide provides a comprehensive step-by-step approach to successfully installing the MongoDB PHP driver on XAMPP for macOS, ensuring a smooth and efficient setup process. ... [详细]
author-avatar
2335286cc
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有