Web服务器集群建立
一 需求剖析:
1.全体需求:建立一个高可用的网站服务器集群,能接受高并发恳求,能抵御一般的网络进犯,任何一台服务器的退服不影响整个集群的运作,而且能对各服务器的运转状况作出实时监控。
2.详细需求剖析:
依据需求,方案依据以下拓扑建立运转环境:
二 详细功用描述:
1.前端服务器选用nginx完成反向署理和负载均衡,用keepalive完成HA。此部分由centos1和centos4完成,centos1作为主服务器,centos4作为热备服务器。Nginx会依据不同的恳求ip机会均等地把恳求发送到后端两台服务器,而且以ip hash的方法坚持各个ip的会话。
2.后端服务器构建在centos2与centos3上,选用apache作为web发布软件,mysql作为数据库,测验网页用Django来完成。两台服务器的数据库可以主动同步。
3.作为热备服务器,centos4在centos1没有毛病时并没有事务流量,处于相对闲暇的状况,因而在centos4上装备nfs使它成为文件同享服务器,网站文件放在这台服务器上。
4.centos5作为监控服务器,运转nagios监控各服务器状况。呈现告警时经过告警告诉管理员。别的centos5还作为saltstack的服务器,其他主机的软件装置、文件传输、指令运转等操作均经过saltstack批量完成。
三 整体布置描述:
1.各个服务器均装置centos6.4 64位版别,选用cobbler完成批量主动装置。
2.各个软件均装置最新的稳定版,centos自带的软件也要进行晋级,例如python,Centos自带的版别比较久,会影响Django的运转。
四 详细布置描述:
1.nginx设置
Nginx在这里的效果主要是反向署理、作为用户以及服务器之间的缓存、以及以负载均衡的方法把恳求发送到后端两台服务器。
选用编译装置的方法装置nginx,详细进程就不在此记叙了,不过为了更好地抵御侵略,主张编译前修正一下装置文件,使侵略者难以查出nginx的版别号,修正装置文件中的nginx.h,把相关字段修正如下:
NGINX_VERSION "1.0" NGINX_VER "webserver" NGINX_VERSION
Nginx的装备文件如下:
212800
default_type application/octet- zone=20;
send_timeout 20;
client_body_buffer_size 1k;
client_header_buffer_size 1k;
large_client_header_buffers 2 1k;
server_tokens off;
client_body_timeout 20;
client_header_timeout 20;
ip_hash;
server 10.0.0.3;
server 10.0.0.280///100;
limit_rate 500k; 500 502 503 504 /= /
由于后端测验网页是用Django写的,因而nginx就不用处理php等动态网页的恳求了。
设置结束后,把nginx设置为开机发动,可以用如下方法:
echo “/usr/local/nginx/sbin/nginx” >>/etc/rc.local
2.Keeplive设置
Keeplive的效果是在两台服务器(centos1、centos4)之间,以VRRP协议完成HA。经过虚拟出一个Virtul IP(本比如中是192.168.48.138)来对外发布事务。两台服务器中的任一台退服了,keeplive会主动把事务转到另一台上。在这里centos1是主服务器,centos4是备用服务器。平常的数据流量只会经过centos1,只要centos1退服了,数据流量才会割接到centos4上。
centos1上的keepalive装备:
! Configuration File @test.com @127.0.0.130
virtual_router_id 51192.168.48.139
priority 100
advert_int 1 1111192.168.48.138
关于从服务器centos4,只需要把以上装备文件的部分内容修正即可:
192.168.48.14090
相同,装备好装备文件后,把keepalive添加到开机发动中。
关于keepalive,由所以运用VRRP协议来检查对端是否在线的,只要对端能ping通,那么keeplive就会以为对端在线。但也有一种状况是对端服务器没有宕机,但nginx犯错封闭了,这种状况下keepalive仍然会判别对端在线,不会把事务割接到备用服务器。因而咱们需要在服务器上运转一个脚本,监控nginx进程的状况。假设nginx进程封闭了,先测验重启nginx,无法重启时就封闭keepalive的进程,使事务割接到备用端。脚本如下:
[1] [2] [3] [4] 黑客接单网