登录
注册
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
好友
帖子
收藏
道具
勋章
任务
日志
设置
退出
首页
HOME
服务体系
SERVICE
成功案例
CASE
技术分享
SHARE
扩展中心
EXTEND
关于我们
ABOUT
免费咨询热线:
13559213891
本版
帖子
用户
Discuz下载
好集导航
技术博客
Crx349博客
Dismall优惠应用
知识打赏
无限星辰工作室-客户无限互联网动力之源
»
技术分享
›
建站资源区
›
建站环境
›
varnish负载均衡及故障自动切换(转载)
varnish负载均衡及故障自动切换(转载)
crx349
于 2013-9-15 22:12 发表在
[复制链接]
[显示全部楼层]
[打印]
[上一主题]
[下一主题]
环境
:有四台WEB,
WEB1-3为提供
www.test.com
的后端
服务
器
WEB1-2为负载均衡根据
服务器
情况设置权重
WEB3为健康状态检测后的备份机 意思就是如果访问WEB1-2其中一台机器出现
问题
的问题那么转向WEB3服务器再访问
WEB4为theme.abc.com的后端服务器
backend web1 {
.host = "192.168.0.1";
.port = "80";
}
backend web2 {
.host = "192.168.0.2";
.port = "80";
}
backend web3 {
.host = "192.168.0.3";
.port = "80";
}
backend web4 {
.host = "192.168.0.4";
.port = "80";
}
#负载轮询机制
director default random {
{
.backend = web1;
.weight = 200; }
{
.backend = web2;
.weight = 300; }
}
#允许清理缓存控制
acl purge {
"localhost";
"127.0.0.1";
"192.168.0.0"/26;
}
sub vcl_recv {
if (req.request == "PURGE") {
if (!client.ip ~ purge) {
error 405 "Not allowed.";
}
elseif(req.url ~ "\.(php|cgi)($|\?)") {
pass;
}
else {
lookup;
}
}
#设置健康状态检测机制,这里实际是使用了一个备份功能
if((req.http.host ~"^(www.|bbs.)?test.com")&&(req.restarts == 0)) {
set req.backend = default;
} elseif(req.restarts == 1) {
set req.backend = web3;
}
#另外一个域名的配置
if(req.http.host ~"^(theme.|special.)?abc.com") {
set req.backend = web4;
}
#定义一些缓存的内容 PHP 不缓存
if (req.request != "GET" && req.request != "HEAD")
{
pipe;
}
elseif (req.url ~ "\.(php|cgi)($|\?)")
{
pass;
}
elseif (req.http.Authenticate || req.http.Authorization) {
pass;
}
lookup;
}
sub vcl_hit
{
if (req.request == "PURGE") {
set obj.ttl = 0s;
error 200 "Purged.";
}
if (!obj.cacheable)
{
pass;
}
if (obj.http.Vary)
{
unset obj.http.Vary;
}
}
sub vcl_miss
{
if (req.request == "PURGE") {
error 404 "Not in cache.";
}
}
#定义hash的值 这个跟清空缓存有很大的关系
#处理压缩情况的内容
sub vcl_hash {
set req.hash += req.url;
if (req.http.host) {
set req.hash += req.http.host;
} else {
set req.hash += server.ip;
}
if ( req.http.Accept-Encoding ){
if (req.url ~ "\.(jpg|jpeg|png|gif|rar|zip|gz|tgz|bz2|tbz|mp3|ogg|swf|exe|flv|avi|rmvb|rm|mpg|mpeg|pdf)$") {
} else {
set req.hash += req.http.Accept-Encoding;
}
}
hash;
}
sub vcl_fetch
{
#轮询机制的一部分,定义什么时候就restart
if ((obj.status == 500 || obj.status == 501 || obj.status == 502 || obj.status == 503) && req.restarts < 2) {
restart;
}
if (!obj.cacheable)
{
pass;
}
#决定哪些头不缓存
if (obj.http.Pragma ~ "no-cache" || obj.http.Cache-Control ~ "no-cache" || obj.http.Cache-Control ~ "private") {
pass;
}
if (obj.http.Set-Cookie)
{
pass;
}
#定义不同内容的缓存时间
if (req.request == "GET" && req.url ~ "\.(txt|js|css|html|htm)$") {
set obj.ttl = 600s;
}
else {
set obj.ttl = 10d;
}
复制代码
本教程由
无限星辰工作室
CRX349独家整理和提供,转载请注明地址,谢谢。本文地址:
https://www.xmspace.net/thread-86-1-1.html
无限星辰工作室
好集导航
Discuz全集下载
星辰站长网
集热爱361
一品文学
手机小游戏合集
海外空间网
星辰api
星辰支付二维码管理平台
阿里云服务器
腾讯云服务器
服务Discuz!建站|DiscuzQ配置|二开|小程序|APP|搬家|挂马清理|防护|Win/Linux环境搭建|优化|运维|
服务理念:专业 诚信 友好QQ842062626
服务项目
Q群315524225
发表于 2013-9-15 22:12:01
|
显示全部楼层
|
阅读模式
回复
|
使用道具
举报
该帖共收到
0
条回复!
B
Color
Image
Link
Quote
Code
Smilies
高级模式
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
回复
点评
评分
分享
推荐板块
站务公告
客户问答区
VIP客户专区
Discuz!技术分享
Discuz!教程
Discuz!模板
Discuz!插件
Discuz!漏洞补丁
Discuz!版本下载
站长资讯
查看全部板块>>
美图秀
fastadmin 后台界面使用字段数组类型
Discuz!x3.5 修改标题高亮颜色
Discuz!x3.5 应用中心 下载应用一直下载中
帖子定时显示
论坛辅助审核
热门活动
fastadmin 后台界面使用字段数组类型
立即参加
Discuz!x3.5 修改标题高亮颜色
立即参加
Discuz!x3.5 应用中心 下载应用一直下载中
立即参加
帖子定时显示
立即参加
论坛辅助审核
立即参加
热门推荐
►
Discuz!x3.5 导航浮动修改方法
►
Discuz!x3.5 上传附件后缀自动改名attach
►
帝国cms nginx 目录安全配置
►
Phpcms 挂马解决案例
►
Discuz! X 开发过程中常用函数或变量说明
►
wordpress 挂马清理案例
►
帝国cms 挂马处理案例之一
►
Thinkphp5 事务和foreach连用注意事项
►
2024春节放假通知
►
Docker部署宝塔
►
fastadmin 后台界面使用字段数组类型
►
thinkphp5超全局变量、魔术方法和魔术变量
►
Discuz!x3.5 修改标题高亮颜色
►
Discuz!x3.5 应用中心 下载应用一直下载中
►
Fastadmin 修改js 立即生效解决方案
►
宝塔申请ssl证书错误 Invalid version. The
►
帖子定时显示
►
论坛辅助审核
►
打赏赞助网站
►
thinphp6 composer 自动加载错误解决方案
Online Service
快速回复
返回顶部
返回列表