• 每天进步一点点!

文章分类

推荐网站

常用手册

Varnish配置文件详解【转载】

既然Varnish需要在多台服务器上缓存数据,就需要Varnish映射所有的URL到一台单独的主机。

 

backend webserver {  
    .host = "127.0.0.1";  
    .port = "80";  
    .connect_timeout = 4s;  
    .first_byte_timeout = 5s;  
    .between_bytes_timeout = 20s;  
}  

 

该块配置用于定义一台Varnish默认访问的后端服务器,当Varnish需要从后端服务器获取数据时,就会访问自己的80端口。

当然Varnish也可以定义多台后端服务器实现负载均衡的目的。

.connect_timeout定义的是等待连接后端的时间

.first_byte_timeout定义的是等待从backend传输过来的第一个字节的时间

.between_bytes_timeout 定义的是两个字节的间隔时间

当然还可以增加一个backend,用于访问本机的8090端口,假设通过该端口提供图片服务。

 

backend img {  
    .host = "127.0.0.1";  
    .port = "8090";  
}  

 

当匹配img的URL时,需把请求发送到上面定义的backend img,其他的请求发送到backend webserver。

 

sub vcl_recv {  
    if (req.url ~ "^/img/") {  
        set req.backend = img;  
    } else {  
        set req.backend = webserver.  
    }  
}  

 

Varnish不仅仅可以定义多个backend,还可以把多个backend合成一个组,使用循环的方式把请求分配给组中的backends。并且Varnish会根据健康检查情况来判断后端服务器是否正常提供服务。

类别:性能优化 | 浏览(84) | 评论(0) | 阅读全文>>

高速缓存Varnish【原创】

简介:

Varnish是一款高性能且开源的反向代理服务器和HTTP 加速器

 

特点:

(1)是基于内存缓存,重启后数据将消失。

(2)利用虚拟内存方式,io性能好。

(3)支持设置0~60秒内的精确缓存时间。

(4)VCL配置管理比较灵活。

(5)32位机器上缓存文件大小为最大2G。

(6)具有强大的管理功能,例如top,stat,admin,list等。

(7)状态机设计巧妙,结构清晰。

(8)利用二叉堆管理缓存文件,达到积极删除目的

 

环境设置:

测试环境:用VMWare安装的CentOS5.6,Windows2003,克隆的CentOS5.6命名为CentOS5.6.1

CentOS5.6 有两块网卡vmnet0(IP:192.168.2.10)用于与公网用户通信,vmnet1(IP:8.8.8.10)用于模拟内网

CentOS5.6.1 一块网卡vmnet0(IP:192.168.2.11)由于模拟内网提供服务web服务的服务器,我用的是Apache

Windows2003 一块网卡vmnet1(IP:8.8.8.11)用于模拟公网web用户。

配置CentOS5.6 

ifconfig eth0 192.168.2.10 netmask 255.255.255.0
ifconfig eth1 8.8.8.10 netmask 255.255.255.0

配置CentOS5.6.1

ifconfig eth0 192.168.2.11 netmask 255.255.255.0

配置window2003

IP地址:8.8.8.11 子网掩码255.255.255.0

 

类别:性能优化 | 浏览(112) | 评论(0) | 阅读全文>>

MySql主从复制配置实例【原创】

主从复制的优点:

  1. 主服务器/从服务器设置增加了健壮性。主服务器出现问题时,你可以切换到从服务器作为备份。
  2. 通过在主服务器和从服务器之间切分处理客户查询的负荷,可以得到更好的客户响应时间。SELECT查询可以发送到从服务器以降低主服务器的查询处理负荷。但修改数据的语句仍然应发送到主服务器,以便主服务器和从服务器保持同步。如果非更新查询为主,该负载均衡策略很有效,但一般是更新查询。
  3. 使用复制的另一个好处是可以使用一个从服务器执行备份,而不会干扰主服务器。在备份过程中主服务器可以继续。

 

主从复制的工作原理:

主从复制的通过3个过程来实现,其中一个过程发生在主服务器上,另两个过程发生在从服务器。

  1. 主服务器将用户对数据库的更新操作以二进制的格式保存在Binary Log日志文件中,然后由Binlog Dump线程将Binary Log日志文件传输到从服务器。
  2. 从服务器通过一个I/O线程将主服务器上的Binary Log日志文件中的更新操作复制到一个叫做Relay Log的中继日志文件中。
  3. 从服务器通过另一个SQL线程将Relay Log中继日志文件中的操作依次在本地执行,从而实现主从服务器之间的数据同步。

 

类别:性能优化 | 浏览(369) | 评论(0) | 阅读全文>>

Nginx负载均衡实例【原创】

  • 网络环境准备

准备六台计算机,一台模拟外网的互联网用户(可以是Linux也可以是Windows),一台模拟Nginx负载均衡服务器(必须是Linux),另四台模拟真实的服务器(Linux)。我们这里使用VMWare安装CentOS5.6作为Nginx负载均衡服务器,另外用VMWare再clone四台CentOS5.6作为Real Server。用WMWare安装windows(我这里用的是windows2003)作为外网的互联网用户,做实验时,请将防火墙关掉。

  • 克隆四台RealServer.

在CentOS5.6关机状态下,进行克隆。右击VM->Manage->Clone->Next....

这里我将3个虚拟机命名为:CentOS5.6.11,CentOS5.6.12,CentOS5.6.13,CentOS5.6.14

  • 给CentOS5.6再添加一块网卡

根据上面的拓扑图可知,CentOS5.6作为LVS服务器,需要两个IP地址,所以我们给这个虚拟机在添加一个网卡。在CentOS5.6启动状态下:VM->Setting->Add->Network Adapter->Next->Finish

  • 设置网卡的连接方式:

将CentOS5.6(LVS)的一块网卡设置为vmnet0,用于与外网通信,一块设置为vmnet1,用于与RealServer通信,windows2003作为外网的互联网用户,网卡设为vmnet0。CentOS5.6.11,CentOS5.6.12,CentOS5.6.13,CentOS5.6.14作为RealServe,网卡都设为vmnet1。我是在Ubuntu上安装的vmware,我的vmware配置如图:

类别:性能优化 | 浏览(138) | 评论(0) | 阅读全文>>

Nginx负载均衡的五种方式简介【转载】

nginx的upstream目前支持5种方式的分配  

  1.  轮询(默认)

 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

  1.  weight

 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。例如:

upstream bakend {  
    server 192.168.0.14 weight=10;  
    server 192.168.0.15 weight=10;  
} 
  1. ip_hash 

  每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。例如: 

upstream bakend {  
    ip_hash;  
    server 192.168.0.14:88;  
    server 192.168.0.15:80;  
} 
  1. fair(第三方) 

  按后端服务器的响应时间来分配请求,响应时间短的优先分配。例如:

upstream backend {  
    server server1;  
    server server2;  
    fair;  
} 
  1. url_hash(第三方) 

  按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 

类别:性能优化 | 浏览(86) | 评论(0) | 阅读全文>>