概述
IP规划
192.168.174.221 Tomcat01(部署前台项目的8080)
192.168.174.222 Tomcat02(部署前台项目的8080)
192.168.174.223 Nginx01主+Keepalived
192.168.174.224 Nginx02备+Keepalived
安装环境:
查看是否安装(其他软件包的查看方式都是这样):rpm -q gcc
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc
yum -y install gcc-c++
安装PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库
yum install -y pcre pcre-devel
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库
yum install -y zlib zlib-devel
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel
编译源码:
tar -zxvf nginx-1.8.0.tar.gz -C /usr/local/
cd /usr/local/nginx-1.8.0/
注意:下边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录,否则安装的时候会找不到目录
mkdir -p /var/temp/nginx
./configure
--prefix=/usr/local/nginx
--pid-path=/var/run/nginx/nginx.pid
--lock-path=/var/lock/nginx.lock
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log
--with-http_gzip_static_module
--http-client-body-temp-path=/var/temp/nginx/client
--http-proxy-temp-path=/var/temp/nginx/proxy
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi
--http-scgi-temp-path=/var/temp/nginx/scgi
执行编译和安装:make
会生成一个Makefile
执行安装:make install
可以合并:make && make install
安装完成在:/usr/local/nginx下
测试安装:/usr/local/nginx/sbin/nginx
ps aux | grep nginx
访问浏览器:
http://192.168.174.223
http://192.168.174.224
停止Nginx
强制杀死(不建议使用):/usr/local/nginx/sbin/nginx -s stop
完整停止(建议使用):
/usr/local/nginx/sbin/nginx -s quit (此方式停止步骤是待nginx进程处理任务完毕进行停止)
重启
/usr/local/nginx/sbin/nginx -s reload
#由于/usr/local/下有个运行Solr的Tomcat,我们先解压重命名后再移动过去
tar -zxvf apache-tomcat-7.0.47.tar.gz
mv apache-tomcat-7.0.47 /usr/local/apache-tomcat-front
配置下Tomcat(为后面的部署做准备)
修改编码
vi /usr/local/apache-tomcat-front/conf/server.xml
URIEncoding="UTF-8"
配置一个Tomcat用户
vi /usr/local/apache-tomcat-front/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user password="123456" roles="manager-gui, manager-script" username="tomcat"/>
配置Nginx
vi /usr/local/nginx/conf/nginx.conf
#配置一个代理服务器tomcat_server
upstream tomcat_server {
server 192.168.174.221:8080 weight=20;
server 192.168.174.222:8080 weight=10;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
#配置一个转发
proxy_pass http://tomcat_server;
}
启动两个tomcat和两台nginx测试转发
/usr/local/apache-tomcat-front/bin/startup.sh
/usr/local/nginx/sbin/nginx
访问Nginx(配置了权重,两次会转发221,在一次到222)
http://192.168.174.223
http://192.168.174.224
在223和224Nginx上搭建Keepalived绑定虚拟IP
yum -y install keepalived
查看下当前机器使用的网卡
ifconfig
查看网卡绑定IP的情况
ip add show eth0
配置Nginx主机keepalived配置文件
vi /etc/keepalived/keepalived.conf
vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.174.250
}
track_script {
check_nginx
}
}
#书写监控脚本
cd /etc/keepalived
vi check_nginx.sh
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
service keepalived stop
fi
chmod 755 check_nginx.sh
配置Nginx备机keepalived配置文件
vi /etc/keepalived/keepalived.conf
vrrp_script check_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.174.250
}
track_script {
check_nginx
}
}
启动keepalived
service keepalived start
查看虚拟IP绑定情况
ip add show eth0 #此时只有主机绑定的,当主机死后,备机才会绑定,由于我们设置了权重,当主机恢复时,备机放弃绑定,主机重新绑定虚拟IP
启动两个tomcat和两台nginx测试转发
/usr/local/apache-tomcat-front/bin/startup.sh
/usr/local/nginx/sbin/nginx
service keepalived start
********************************* 不积跬步无以至千里,不积小流无以成江海 *********************************
最后
以上就是喜悦往事为你收集整理的Nginx + Keepalived实现高可用的ISO七层负载均衡的全部内容,希望文章能够帮你解决Nginx + Keepalived实现高可用的ISO七层负载均衡所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复