<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[静怡家园]]></title> 
<link>http://www.zhanghaijun.com/index.php</link> 
<description><![CDATA[书山有路勤为径，学海无涯苦作舟！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[静怡家园]]></copyright>
<item>
<link>http://www.zhanghaijun.com/post/810/</link>
<title><![CDATA[见识了F5负载均衡交换机]]></title> 
<author>碟舞飞扬 &lt;webmaster@zhanghaijun.com&gt;</author>
<category><![CDATA[集群技术]]></category>
<pubDate>Tue, 17 May 2011 06:09:59 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post/810/</guid> 
<description>
<![CDATA[ 
	　　今天有机会去了趟中国网通北京西单机房，也终于见识了价值50～100万人民币的“F5 BIG-IP 负载均衡交换机”，以下是我对F5 BIG-IP的一些认识：<br/><br/><a href="http://www.zhanghaijun.com/attachment.php?fid=22" target="_blank"><img src="http://www.zhanghaijun.com/attachment.php?fid=22" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/>　　<br/>　　1、F5 BIG-IP是一台对流量和内容进行管理分配的设备，它提供12种灵活的算法将所有流量均衡的分配到各个服务器，而面对用户，只是一台虚拟服务器。<br/>　　2、F5 BIG-IP可以确认应用程序能否对请求返回对应的数据。假如F5 BIG-IP后面的某一台服务器发生服务停止、死机等故障，F5会检查出来并将该服务器标识为宕机，从而不将用户的访问请求传送到该台发生故障的服务器上。这样，只要其它的服务器正常，用户的访问就不会受到影响。宕机一旦修复，F5 BIG-IP就会自动查证应用已能对客户请求作出正确响应并恢复向该服务器传送。<br/>　　<br/>　　3、F5 BIG-IP通过OneConnection连接优化技术，卸载服务器端的处理压力，提升服务器处理性能。<br/>　　<br/>　　4、F5 BIG-IP通过流量整形和Qos机制区分和保证重要应用的带宽和服务等级。<br/>　　<br/>　　F5性能不错，但价格也不低，低成本实现网站负载均衡的方法之一是：DNS轮循。相比于F5 BIG-IP负载均衡交换机，DNS轮循的处理性能要低，而且负载并不很均衡。如果有服务器倒掉，DNS不能马上将该服务器从列表中摘除。搜狐目前使用的是DNS轮循技术，“nslookup www.sohu.com”可以发现有以下IP：61.135.179.130, 61.135.179.132, 61.135.179.147, 61.135.179.148, 61.135.179.152, 61.135.179.153, 61.135.179.170, 61.135.179.171, 61.135.179.172, 61.135.179.173, 61.135.179.174, 61.135.179.175, 61.135.179.176, 61.135.150.63, 61.135.150.114。随便访问其中的一个IP地址可知，这些服务器都是squid/2.5.STABLE14软件实现的反向代理服务器。<br/>
]]>
</description>
</item><item>
<link>http://www.zhanghaijun.com/post/795/</link>
<title><![CDATA[lvs-nginx_proxy-nginx 取用户真实IP]]></title> 
<author>碟舞飞扬 &lt;webmaster@zhanghaijun.com&gt;</author>
<category><![CDATA[集群技术]]></category>
<pubDate>Sun, 15 May 2011 19:12:53 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post/795/</guid> 
<description>
<![CDATA[ 
	LVS：略<br/>nginx proxy 配置：<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>location / &#123;<br/> root /data/www/wwwroot/bbs.linuxtone.com;<br/> proxy_redirect off ;<br/> proxy_set_header Host $host;<br/> proxy_set_header X-Real-IP $remote_addr;<br/> proxy_set_header REMOTE-HOST $remote_addr;<br/> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br/> client_max_body_size 50m;<br/> client_body_buffer_size 256k;<br/> proxy_connect_timeout 30;<br/> proxy_send_timeout 30;<br/> proxy_read_timeout 60;<br/> proxy_buffer_size 256k;<br/> proxy_buffers 4 256k;<br/> proxy_busy_buffers_size 256k;<br/> proxy_temp_file_write_size 256k;<br/> proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;<br/> proxy_max_temp_file_size 128m;<br/> proxy_pass http://bbs.linuxtone.org;<br/> &#125;<br/></div></div><br/>源nginx配置：<br/>安装<br/>HttpRealIpModule模块：<br/>http://wiki.nginx.org/NginxChsHttpRealIpModule<br/>--with-http_realip_module <br/>编译方法:<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>./configure --user=daemon --group=daemon --prefix=/usr/local/nginx/ <br/>--with-http_stub_status_module --with-http_ssl_module <br/>--with-http_sub_module --with-md5=/usr/lib --with-sha1=/usr/lib <br/>--with-http_gzip_static_module --with-http_realip_module <br/></div></div><br/>虚拟主机增加配置：<br/>set_real_ip_from nginx_proxy_ip/24;<br/>set_real_ip_from nginx_proxy_ip;<br/>real_ip_header X-Real-IP;<br/> <br/>EXP：<br/>set_real_ip_from 192.168.1.0/24;<br/>set_real_ip_from 192.168.1.6;<br/>real_ip_header X-Real-IP;<br/> <br/>查看二台nginx的日志就能取到真实IP了<br/>Tags - <a href="http://www.zhanghaijun.com/tags/lvs/" rel="tag">lvs</a> , <a href="http://www.zhanghaijun.com/tags/nginx/" rel="tag">nginx</a> , <a href="http://www.zhanghaijun.com/tags/proxy/" rel="tag">proxy</a>
]]>
</description>
</item><item>
<link>http://www.zhanghaijun.com/post/730/</link>
<title><![CDATA[lvs负载均衡及ha高可用集群]]></title> 
<author>碟舞飞扬 &lt;webmaster@zhanghaijun.com&gt;</author>
<category><![CDATA[集群技术]]></category>
<pubDate>Thu, 06 Jan 2011 08:36:19 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post/730/</guid> 
<description>
<![CDATA[ 
	目录<br/>一 应用背景<br/>二 应用环境<br/>三 安装配置<br/>四 FAQ <br/><br/>一 应用背景<br/>随着互联网应用的普及以及人们对互联网的要求也越来越高，在流量增加的同时，要求速度快，在线时间长或出故障的时间短或故障后能及时恢复等等。为了解决这些问题，各种负载均衡及集群技术应运而生<br/>其中，LVS便是一个解决大流量分流很好的解决方案<br/>详细请参考 http://www.linuxvirtualserver.org/zh/lvs1.html<br/>HA（High Availability），则是高可用的意思，也可以说是双机热备双机等的应用。如在一些在线时间有特别的要求或是在故障后要在很短的时间内恢复，就有必要应用到这个ha了<br/>本文的应用，由两台机组成的一个LVS及HA，主要是解决分流及单点故障。<br/>如A，B机，正常情况下，A机为LVS转分机，同时又是提供web的服务机，当A机有问题时，B机接管A机的服务，同时自己也是一个web服务机。由于本文的应用中，机器数量有限，所以，将ha,lvs,realserver都放在一起了。在机器允许的情况下，最好分开，如：<br/>LVS转发为独立一台机，再在这转发机上配置HA避免转发机故障，再用一台机来做转发及HA的备机，当主转发机故障时就可接管服务<br/><br/>二 应用环境<br/>机器两台<br/>系统为CentOS 5.4 x86_64版<br/>heartbeat + ldirectord + lvs<br/><br/>结构如下：<br/>VIP:192.168.1.90<br/>Wd1 192.168.1.91<br/>Wd2 192.168.1.92<br/><br/>三 安装<br/>1 可以用源码安装，也可以用yum安装，用源码安装，定制性强一点，但用yum安装，很方便，如：<br/>yum install -y heartbeat<br/>yum install -y heartbeat-ldirectord<br/>即可完成<br/><br/>2 配置（本例的配置文件沿用1.X的风格，2.X以上的功能很强大，也较复杂）<br/>主要的配置文件有以下几个：<br/>Authkeys<br/>ha.cf<br/>ldirectord.cf<br/>haresources<br/><br/>文件内容<br/># cat authkeys<br/>auth 1<br/>1 crc<br/><br/># cat ha.cf<br/>#test conf<br/>debugfile /var/log/ha-debug<br/>logfile /var/log/ha-log<br/>logfacility local0<br/>keepalive 8<br/>deadtime 60<br/>warntime 60<br/>initdead 120<br/>udpport 694<br/>ucast eth0 192.168.1.92<br/>auto_failback on<br/>node wd1<br/>node wd2<br/>respawn hacluster /usr/lib/heartbeat/ipfail<br/>apiauth ipfail gid=haclient uid=hacluster<br/><br/># cat ldirectord.cf<br/>#test conf<br/>checktimeout=10<br/>checkinterval=8<br/>fallback=127.0.0.1:80<br/>autoreload=yes<br/>logfile="/var/log/ldirectord.log"<br/>logfile="local0"<br/>quiescent=no<br/><br/>virtual=192.168.1.90:80<br/>real=192.168.1.91:80 gate<br/>real=192.168.1.92:80 gate<br/>fallback=127.0.0.1:80 gate<br/>service=http<br/>request="lt.html"<br/>receive="Test Page"<br/>scheduler=wrr<br/>persistent=30<br/>protocol=tcp<br/>checktype=negotiate<br/>checkport=80<br/><br/># cat haresources<br/>Wd1 lvs IPaddr::192.168.1.90/24/eth0:0 ldirectord<br/><br/>wd2上的lvs脚本文件<br/># cat /etc/rc.d/init.d/lvs<br/>#!/bin/bash<br/>/sbin/ipvsadm --set 10 10 10<br/><br/>Wd2上的lvs脚本文件<br/># cat /etc/rc.d/init.d/lvs<br/>#!/bin/bash<br/># test<br/>VIP=192.168.1.90<br/>/etc/rc.d/init.d/functions<br/>/sbin/ipvsadm --set 10 10 10<br/>case "$1" in<br/>start)<br/>/sbin/ifconfig lo:0 down<br/>/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up<br/>/sbin/route add -host $VIP dev eth0:0<br/>;;<br/>stop)<br/>/sbin/ifconfig eth0:0 down<br/>/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up<br/>/sbin/route add -host $VIP dev lo:0<br/>;;<br/>*)<br/>echo "Usage: $0 &#123;start&#124;stop&#125;"<br/>exit 1<br/>esac<br/><br/>#cat /etc/hosts<br/>192.168.1.91 wd1<br/>192.168.1.92 wd2<br/>cat /etc/sysctl.conf<br/>net.ipv4.ip_forward = 1<br/>net.ipv4.conf.lo.arp_ignore = 1<br/>net.ipv4.conf.lo.arp_announce = 2<br/>net.ipv4.conf.all.arp_ignore = 1<br/>net.ipv4.conf.all.arp_announce = 2<br/><br/>在iptables 增加一个对方IP的访问，否则在切换时会有问题<br/>Tags - <a href="http://www.zhanghaijun.com/tags/lvs/" rel="tag">lvs</a> , <a href="http://www.zhanghaijun.com/tags/%25E6%259C%258D%25E5%258A%25A1%25E5%2599%25A8%25E9%259B%2586%25E7%25BE%25A4/" rel="tag">服务器集群</a>
]]>
</description>
</item>
</channel>
</rss>