主机名 | ip地址 | 角色 | vip |
lvs01 | 192.168.1.90 | 4层负载 | 192.168.1.206 |
lvs02 | 192.168.1.91 | 4层负载 | 192.168.1.206 |
lb01 | 192.168.1.5 | 7层负载 | |
lb02 | 192.168.1.6 | 7层负载 | |
web-nginx01 | 172.16.1.33 | 静态服务器 | |
web-nginx02 | 172.16.1.34 | 静态服务器 | |
web-tomcat01 | 172.16.1.31 | 动态服务器 | |
web-tomcat02 | 172.16.1.32 | 动态服务器 |
lvs部署
1.编辑realserver脚本文件(在lb01 lb02上)
cd/etc/init.d/vimrealserver#chkconfig:352394SNS_VIP=192.168.1.206./etc/init.d/functionscase"$1"instart)ifconfiglo:0$SNS_VIPnetmask255.255.255.255broadcast$SNS_VIP/sbin/routeadd-host$SNS_VIPdevlo:0echo"1">/proc/sys/net/ipv4/conf/lo/arp_ignoreecho"2">/proc/sys/net/ipv4/conf/lo/arp_announceecho"1">/proc/sys/net/ipv4/conf/all/arp_ignoreecho"2">/proc/sys/net/ipv4/conf/all/arp_announcesysctl-p>/dev/null2>&1echo"RealServerStartOK";;stop)ifconfiglo:0downroutedel$SNS_VIP>/dev/null2>&1echo"0">/proc/sys/net/ipv4/conf/lo/arp_ignoreecho"0">/proc/sys/net/ipv4/conf/lo/arp_announceecho"0">/proc/sys/net/ipv4/conf/all/arp_ignoreecho"0">/proc/sys/net/ipv4/conf/all/arp_announceecho"RealServerStoped";;*)echo"Usage:$0{start|stop}"exit1esacexit0chmod755realserverservicerealserverstartchkconfigrealserveron
2.配置主负载服务器
安装Keepalived ipvsadm相关包
yuminstall-ykeepalivedipvsadmvim/etc/keepalived/keepalived.confglobal_defs{notification_email{edisonchou@hotmail.com}notification_email_fromsns-lvs@gmail.comsmtp_server192.168.80.1smtp_connection_timeout30router_idLVS01#设置lvs的id,在一个网络内应该是唯一的}vrrp_instanceVI_1{stateMASTER#指定Keepalived的角色,MASTER为主,BACKUP为备interfaceeth1#指定Keepalived检测网卡virtual_router_id51#虚拟路由编号,主备要一致priority100#定义优先级,数字越大,优先级越高,主DR必须大于备用DRadvert_int1#检查间隔,默认为1sauthentication{auth_typePASSauth_pass1111}virtual_ipaddress{192.168.1.206#定义虚拟IP(VIP)为192.168.1.206,可多设,每行一个}}virtual_server192.168.80.20080{#定义对外提供服务的LVS的VIP以及portdelay_loop6#设置健康检查时间,单位是秒lb_algowrr#设置负载调度的算法为wrrlb_kindDR#设置LVS实现负载的机制,有NAT、TUN、DR三个模式nat_mask255.255.255.0persistence_timeout0protocolTCPreal_server192.168.1.580{#指定realserver1的IP地址weight3#配置节点权值,数字越大权重越高TCP_CHECK{connect_timeout10nb_get_retry3delay_before_retry3connect_port80}}real_server192.168.1.680{#指定realserver2的IP地址weight3TCP_CHECK{connect_timeout10nb_get_retry3delay_before_retry3connect_port80}}}
3.配置备负载服务器
只需要修改
router_idLVS02priority99
4.启动keepalived (lvs01 lvs02)
/etc/init.d/keepalivedstartchkconfigkeepalivedon
nginx反向代理 7层负载
1.安装nginx(lb01 lb02)
yuminstall-ypcre-developenssl-develpcreopensslmkdir-p/application/tools/cd/application/tools/wgethttp://nginx.org/download/nginx-1.12.2.tar.gzuseraddwww-M-s/sbin/nologin-u504tarxfnginx-1.12.2.tar.gzcdnginx-1.12.2./configure--prefix=/application/nginx-1.12.2--user=www--group=www--with-http_ssl_module--with-http_stub_status_modulemake&&makeinstallln-s/application/nginx-1.12.2//application/nginxecho"#nginx">>/etc/rc.localecho"/application/nginx/sbin/nginx">>/etc/rc.localcd/application/nginx/confegrep-v"#|^$"/application/nginx/conf/nginx.conf.default>/application/nginx/conf/nginx.conf
添加后端服务器nginx健康检测模块
1.下载模块
wgethttps://github.com/yaoweibin/nginx_upstream_check_module/archive/master.zipunzipmaster
2.打补丁
cd/application/tools/nginx-1.12.2patch-p1</application/tools/nginx_upstream_check_module-master/check_1.12.1+.patc
3.重新编译
./configure--prefix=/application/nginx-1.12.2--user=www--group=www--with-http_ssl_module--with-http_stub_status_module--add-module=/application/tools/nginx_upstream_check_module-mastermakerm-rf/usr/local/bin/nginxmv/application/nginx/sbin/nginx/application/nginx/sbin/nginx.bakcp./objs/nginx/application/nginx/sbin/ln-s/application/nginx/sbin/nginx/usr/local/bin/nginx
4.修改配置文件 动静分离 静态内容由nginx服务器处理(web-nginx01 web-nginx02) 动态内容由tomcat处理(web-tomcat01 web-tomcat02)
worker_processes1;events{worker_connections1024;}http{includemime.types;default_typeapplication/octet-stream;sendfileon;keepalive_timeout65;upstreamtomcat{server172.16.1.31:8080weight=1;server172.16.1.32:8080weight=1;checkinterval=3000rise=2fall=5timeout=1000type=http;}upstreamnginx{server172.16.1.33weight=1;server172.16.1.34weight=1;checkinterval=3000rise=2fall=5timeout=1000type=http;}server{listen80;server_namewww.e3mall.com;location/{proxy_passhttp://tomcat;proxy_set_headerHost$host;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;}location~.*.(gif|jpg|jpeg|png|bmp|swf|css|js)${proxy_passhttp://nginx;proxy_set_headerHost$host;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;}location/status{check_status;access_logoff;allow172.16.1.0/24;denyall;}error_page500502503504/50x.html;location=/50x.html{roothtml;}}}
nginx服务器安装(web-nginx01 web-nginx02)
1.部署nginx
yuminstall-ypcre-developenssl-develpcreopensslrpm-qapcre-developenssl-devel
2.下载nginx-1.12.2
cd/application/tools/wgethttp://nginx.org/download/nginx-1.12.2.tar.gzuseraddwww-M-s/sbin/nologin-u504
3.编译安装
tarxfnginx-1.12.2.tar.gzcdnginx-1.12.2./configure--prefix=/application/nginx-1.12.2--user=www--group=www--with-http_ssl_module--with-http_stub_status_modulemake&&makeinstallln-s/application/nginx-1.12.2//application/nginxchown-Rwww:www/application/nginx-1.12.2echo"#nginx">>/etc/rc.localecho"/application/nginx/sbin/nginx">>/etc/rc.localcd/application/nginx/confegrep-v"#|^$"nginx.conf.default>nginx.conf
tomcat服务器安装(web-tomcat01 web-tomcat02)
1.安装jdk1.7
http://download.oracle.com/otn/java/jdk/7u80-b15/jdk-7u80-linux-i586.tar.gzmkdir/javacd/javawgethttp://download.oracle.com/otn/java/jdk/7u80-b15/jdk-7u80-linux-i586.tar.gztarxfjdk-7u80-linux-x64.tar.gzchown-Rroot:root/java/jdk1.7.0_80cat<<EOF>>/etc/profileexportPATH=/java/jdk1.7.0_80/bin:$PATHexportCLASSPATH=.:/java/jdk1.7.0_80/lib/dt.jar:$JAVA_HOME/lib/tools.jarEOFsource/etc/profile
2.安装tomcat
wgethttp://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.88/bin/apache-tomcat-7.0.88.tar.gztarxfapache-tomcat-7.0.88.tar.gzln-s/application/tools/apache-tomcat-7.0.88/application/apache-tomcatcd/application/apache-tomcat/bin/tarxfcommons-daemon-native.tar.gzcdcommons-daemon-1.1.0-native-src/unix/./configuremakecpjsvc/application/apache-tomcat/bin/建立一个用来运行Tomcat的用户useraddtomcat-M-s/usr/sbin/nologin-u504vim/application/apache-tomcat/bin/daemon.sh靠前的地方加入注释#!/bin/sh#chkconfig:-8020若创建用户不是tomcat这里修改为创建用户test".$TOMCAT_USER"=.&&TOMCAT_USER=tomcatcd/application/apache-tomcat/bin/chown-Rtomcat:tomcat/application/tools/apache-tomcat-7.0.88chmoda+x/application/apache-tomcat/bin/daemon.shln-s/application/apache-tomcat/bin/daemon.sh/etc/init.d/tomcat7chkconfigtomcat7on/etc/init.d/tomcat7start
部署动静分离测试网站
1.tomcat1
cd/application/apache-tomcat/webapps/mkdirnginx/image-pchown-Rtomcat.tomcat/application/apache-tomcat/webapps/nginxcdnginxvimindex.jsp<%@pagelanguage="java"contentType="text/html;charset=utf-8"pageEncoding="utf-8"%><!DOCTYPEhtml><body><h2>Nginx动静分离</h2><%out.println("["+request.getLocalAddr()+":"+request.getLocalPort()+"]"+"<br/>sessionid:"+session.getId());%>%<br/>%<imgalt="图片"src="/nginx/img/1.jpg"style="width:300px;height:300px">%</body>%</html>vim/application/apache-tomcat/conf/server.xml<Hostname="localhost"appBase="webapps"unpackWARs="true"autoDeploy="true"><Contextpath=""docBase="/application/apache-tomcat/webapps/nginx"reloadable="true"/>tomcat2上同上修改网站路径
2.复制测试网站到其他三台服务器
scp-rnginx/root@172.16.1.32:/application/apache-tomcat/webapps/scp-rnginx/root@172.16.1.33:/application/nginx/htmlscp-rnginx/root@172.16.1.34:/application/nginx/html
3.nginx01 nginx02 配置
chown-Rwww.www/application/nginx/html/nginxvim/application/nginx/conf/nginx.confworker_processes1;events{worker_connections1024;}http{includemime.types;default_typeapplication/octet-stream;sendfileon;keepalive_timeout65;server{listen80;server_namewww.e3mall.com;location/{roothtml/nginx;indexindex.jsp;}error_page500502503504/50x.html;location=/50x.html{roothtml;}}}
动静分离测试
1.删除tomcat服务器下的image目录下的图片
[root@web-tomcat01image]#rm-rf1.png[root@web-tomcat02image]#rm-rf1.png
2.网页访问测试
负载均衡与web服务集群搭建
原文地址:http://blog.51cto.com/13712476/2119929