首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
grafana
apache
jenkins
server
service
cron
kubectl
tomcat
docker
ssh
4层
crontab
linux
sftp
devops
压力测试
服务器
7层
awk
colors
ftp
负载均衡
nginx
vagrant
curl
sudo
交换机
port
debian
运维
fabric
log4j
syslog
dns
unix
路由器
ubuntu
centos
zsh
k8s
stdout
grep
tengine
touch
容器
centos7
当前位置:
开发笔记
>
运维
> 正文
CentOS5.5下varnish的配置
作者:多米音乐_35692689 | 来源:互联网 | 2014-05-28 12:03
1.系统更新yumupdate2.安装ncurses(主要是用于安装varnishstat等几个命令用)Yum-yinstallncurses-devel3.安装所需软件pcre./configure--prefix/usr/local/pcreMakeMakeinstall4.安装telnettelnet-serve
1.系统更新
yum update
2.安装ncurses(主要是用于安装varnishstat等几个命令用)
Yum -y install ncurses-devel
3.安装所需软件pcre
./configure --prefix=/usr/local/pcre
Make
Make install
4.安装telnet telnet-server (在管理控制varnish时需要用到起)
Yum -y install telnet-server
5.创建www用户和组,以及vasrnish缓存文件存放目录
6.创建varnish日志目录
Mkdir -p /var/log/varnish
Chmod +w /var/log/varnish
Chown -R www:www /var/log/varnish
7.编译安装varnish
Cd /usr/local/src
tar -xvzf varnish-2.1.2.tar.gz
cd varnish-2.1.2
export PKG_CONFIG_PATH=/usr/local/pcre/lib/pkgconfig
./configure -prefix=/usr/local/varnish
Make &&make install
8.创建varnish配置文件
Vi /usr/local/varnish/vcl.conf
backend rzmsserver {
.host = "192.168.1.27";
.port = "80";
.probe = {
.timeout = 50 ms;
.interval = 5s;
.window = 10;
.threshold = 8;
.request =
"GET /UserLogin.aspx HTTP/1.1"
"Host: 192.168.1.27"
"Connection: close"
"Accept-Encoding: foo/bar" ;
}
}
acl purge {
“localhost”;
“127.0.0.1”;
"192.168.1.27"/24;
}
sub vcl_recv {
if (req.request == "PURGE") {
if (!client.ip ~ purge) {
error 405 "Not allowed.";
}
return(lookup);
}
if (req.http.host ~ "^192.168.1.27") {
set req.backend = rzmsserver;
if (req.request != "GET" && req.request != "HEAD") {
return(pipe);
}
else {
return(lookup);
}
}
else {
error 404 "rzms Cache Server";
return(lookup);
}
}
sub vcl_hit {
if (req.request == "PURGE") {
set obj.ttl = 0s;
error 200 "Purged.";
}
}
sub vcl_miss {
if (req.request == "PURGE") {
error 404 "Not in cache.";
}
}
sub vcl_fetch {
if (req.request == "GET" && req.url ~ "\.(txt|js)$") {
set beresp.ttl = 3600s;
}
else {
set beresp.ttl = 30d;
}
}
说明:
(1)、Varnish通过
反向代理
请求后端IP为192.168.0.5,端口为80的web服务器;
(2)、Varnish允许localhost、127.0.0.1、192.168.0.***三个来源IP通过PURGE方法清除缓存;
(3)、Varnish对域名为192.168.1.27的请求进行处理,非192.168.1.27域名的请求则返回“rzms Cache Server”;
(4)、Varnish对HTTP协议中的GET、HEAD请求进行缓存,对POST请求透过,让其直接访问后端Web服务器。之所以这样配置,是因为POST请求一般是发送数据给服务器的,需要服务器接收、处理,所以不缓存;
(5)、Varnish对以.txt和.js结尾的URL缓存时间设置1小时,对其他的URL缓存时间设置为30天。
9.启动Varnish
ulimit -SHn 51200
/usr/local/varnish/sbin/varnishd -n /var/vcache -f/ usr/local/varnish/default.vcl -a 0.0.0.0:80 -s file,/var/vcache/varnish_cache.data,1024m -p user=www -p group=www -w 30000,51200,10 -T 127.0.0.1:3500 (-p client_http11=on)未使用
说明:
-f 指定配置文件启动
-a 监听本机的网卡的80端口
-T 指定本机的varnish管理端口
-s file 指定varnish缓存文件的位置以及大小
-w 指处理的最小请求数、最大请求数、超时时间
-g 组名
-u 用户名
-p client_http11=on 支持http1.1协议
-P(大P) /usr/local/varnish/var/varnish.pid 指定其进程码文件的位置,实现管理。
10.varnishncsa用来将Varnish访问日志写入日志文件
/usr/local/varnish/bin/varnishncsa -n /var/vcache -w /var/logs/varnish/varnish.log &
11.通过 Varnish 管理端口?行管理(用 -help查看可用的指令)
/usr/local/varnish/varnishadm -T 127.0.0.1:3500 help
(1) 例如:清除具体URL地址:
/usr/local/varnish/bin/varnishadm -T 127.0.0.1:3500 url.purge /a/
(2) 例如:清除具体URL地址:
/usr/local/varnish/bin/varnishadm -T 127.0.0.1:3500 url.purge w*$
(3) 例如:清除所有缓存:
/usr/local/varnish-2.1/bin/varnishadm -T 127.0.0.1:3500 url.purge *$
12.通过varnishstat监控varnish状态
/usr/local/varnish/bin/varnishstat -n var/vcache
服务器
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
服务器
从CodeIgniter中提取图像处理组件
本指南旨在帮助开发者在未使用CodeIgniter框架的情况下,如何独立使用其强大的图像处理功能,包括图像尺寸调整、创建缩略图、裁剪、旋转及添加水印等。 ...
[详细]
蜡笔小新 2024-11-20 19:57:35
服务器
精选10款Python框架助力并行与分布式机器学习
随着神经网络模型的不断深化和复杂化,训练这些模型变得愈发具有挑战性,不仅需要处理大量的权重,还必须克服内存限制等问题。本文将介绍10款优秀的Python框架,帮助开发者高效地实现分布式和并行化的深度学习模型训练。 ...
[详细]
蜡笔小新 2024-11-20 19:44:05
port
ARM平台下构建SSH服务端并实现远程访问
本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ...
[详细]
蜡笔小新 2024-11-20 14:13:38
port
解决Spring Cloud Eureka自定义端口时连接错误的问题
在尝试通过自定义端口部署Spring Cloud Eureka时遇到了连接失败的问题。本文详细描述了问题的现象,并提供了有效的解决方案,以帮助遇到类似情况的开发者。 ...
[详细]
蜡笔小新 2024-11-20 13:05:47
port
Android SOAP 请求失败:服务器无法处理请求,参数值不能为空
在尝试使用 Android 发送 SOAP 请求时遇到错误,服务器返回 '无法处理请求' 的信息,并指出某个值不能为 null。本文探讨了可能的原因及解决方案。 ...
[详细]
蜡笔小新 2024-11-20 13:01:10
ftp
Python实现文件下载的三种方式
在Python编程中,经常需要处理文件下载的任务。本文将介绍三种常用的下载方法:使用urllib、urllib2以及requests库进行HTTP请求下载,同时也会提及如何通过ftplib从FTP服务器下载文件。 ...
[详细]
蜡笔小新 2024-11-20 11:56:32
port
Oracle 数据库间通过 DBLink 进行交互的方法
本文介绍了如何在两个Oracle数据库(假设为数据库A和数据库B)之间设置DBLink,以便能够从数据库A中直接访问和操作数据库B中的数据。文章详细描述了创建DBLink前的必要准备步骤以及具体的创建方法。 ...
[详细]
蜡笔小新 2024-11-20 11:20:35
nginx
解决PHP及Web开发中的UTF-8乱码问题
本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ...
[详细]
蜡笔小新 2024-11-20 10:58:03
服务器
优化MySQL大规模数据删除策略
本文探讨了在MySQL数据库中处理大规模数据删除的最佳实践,包括分批删除、利用索引、管理事务以及选择合适的删除命令等策略,旨在提升删除效率并确保系统稳定。 ...
[详细]
蜡笔小新 2024-11-20 10:28:20
服务器
实践指南:使用Express、Create React App与MongoDB搭建React开发环境
本文详细介绍了如何利用Express、Create React App和MongoDB构建一个高效的React应用开发环境,旨在为开发者提供一套完整的解决方案,包括环境搭建、数据模拟及前后端交互。 ...
[详细]
蜡笔小新 2024-11-20 10:05:15
服务器
HTTP缓存机制详解:ETag与304状态码
本文详细介绍了HTTP协议中的缓存机制,包括ETag的使用方法和304状态码的意义,探讨了强缓存与协商缓存的区别及其工作原理,旨在帮助开发者更好地理解和优化网站性能。 ...
[详细]
蜡笔小新 2024-11-20 08:18:45
port
ESP32作为TCP客户端的通信实现
本文档介绍了如何使用ESP32开发板在STA模式下实现与TCP服务器的通信,包括环境搭建、代码解析及实验步骤。 ...
[详细]
蜡笔小新 2024-11-20 01:20:18
服务器
2017年软件开发领域的七大变革
随着技术的不断进步,2017年对软件开发人员而言将充满挑战与机遇。本文探讨了开发人员需要适应的七个关键变化,包括人工智能、聊天机器人、容器技术、应用程序版本控制、云测试环境、大众开发者崛起以及系统管理的云迁移。 ...
[详细]
蜡笔小新 2024-11-19 20:17:20
负载均衡
PHP面试题精选及答案解析
本文精选了新浪PHP笔试题及最新的PHP面试题,并提供了详细的答案解析,帮助求职者更好地准备PHP相关的面试。 ...
[详细]
蜡笔小新 2024-11-19 20:00:19
sudo
Git配置及常用命令详解
本文介绍了如何在不同操作系统上安装Git,以及一些基本和高级的Git操作,包括项目初始化、文件状态检查、版本控制、分支管理、标签处理、版本回退等,并简要提及了开源许可协议的选择。 ...
[详细]
蜡笔小新 2024-11-19 19:52:34
多米音乐_35692689
这个家伙很懒,什么也没留下!
Tags | 热门标签
grafana
apache
jenkins
server
service
cron
kubectl
tomcat
docker
ssh
4层
crontab
linux
sftp
devops
压力测试
服务器
7层
awk
colors
ftp
负载均衡
nginx
vagrant
curl
sudo
交换机
port
debian
运维
RankList | 热门文章
1
安卓应用界面设计之CheckBox使用
2
redis.clients.jedis.exceptions.JedisNoReachableClusterNodeException: No reachable node in cluster
3
从一道常见习题的自然延伸谈起
4
ad17布线规则
5
《秋庭夜月有怀》翻译 原文赏析诗人唐李澄之
6
Thinkjs学习1—概述及MVC的粗略理解
7
我想用这个代码生成随机数,但它会产生错误
8
如何在R中使用带空参数的group_by()?
9
关于interface(接口继承)extends(接口)interface的问题
10
MyCat中的schema.xml详解
11
惠普M1005不能使用页码范围打印该怎么办?
12
响铃:厉害了中国古人!原来,我们3000年前就有了机器人
13
机器学习:KNN-近邻算法
14
golang 读取 mysql null 字符串错误
15
宝宝拉肚子
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有