群集架构篇  ——nginx反向代理+keepalived双机热备+tomcat服务器池+后端数据库

网友投稿 288 2022-11-12

群集架构篇  ——nginx反向代理+keepalived双机热备+tomcat服务器池+后端数据库

首先准备好两台nginx,两台tomcat,一台mysql数据库,如下NginxIP地址:192.168.20.39(lvs01)192.168.20.40(lvs02)漂移地址:192.168.20.66TomcatIP地址:192.168.20.41(TM01)192.168.20.42(TM02)MysqlIP地址:192.168.20.50

=====================192.168.20.39(lvs01)=======================vi /usr/local/nginx/conf/nginx.conf

在 mime.types;default_type application/octet-stream;下,去除#

log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$''"$"$on下增加 include /usr/local/nginx/conf/conf.d/*.conf; #指向子配置文件

cd /usr/local/nginx/conf/mkdir conf.d #创建子配置文件夹cd conf.d/

vi lvs01.conf

server {listen 80;server_name lvs01 192.168.20.39; index index.html index.jsp;root /usr/local/nginx/html;access_log /usr/local/nginx/logs/tomcat.aa.com_access.log main;location / {proxy_set_header HOST $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header Client-IP $remote_addr;proxy_set_header X-For $proxy_add_x_forwarded_for;proxy_pass #将所有文件给tomcat服务器处理}}

vi pool.conf

upstream center_pool { server 192.168.20.41:8080; server 192.168.20.42:8080;ip_hash; #稳定ip会话}

启动脚本vi /etc/init.d/nginx

#!/bin/bashPROG="/usr/local/nginx/sbin/nginx"PIDF="/usr/local/nginx/logs/nginx.pid"case "$1" instart)$PROG;;stop)kill -s QUIT $(cat $PIDF);;restart)$0 stop$0 start;;reload)kill -s HUP $(cat $PIDF);;*)echo "Usage: $0 {start|stop|restart|reload}"exit 1esacexit 0

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/chmod +x /etc/init.d/nginxchkconfig --add nginx

tar xvf keepalived-1.4.2.tar.gzcd keepalived-1.4.2./configure --prefix=/make && make install cp keepalived/etc/init.d/keepalived /etc/init.d/systemctl enable keepalivedcd /etc/keepalived/vi keepalived.conf

! Configuration File for keepalivedglobal_defs {route_id NGINX-01}vrrp_script nginx {script "/opt/nginx.sh"interval 2weight -10}vrrp_instance VI_1 {state MASTER #状态是masterinterface ens33virtual_router_id 51priority 150 #优先级为150 advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {nginx}virtual_ipaddress {192.168.20.66 #漂移地址ip}}

vi /opt/nginx.sh #将nginx和keepalived同时开启关闭的脚本

#!/bin/bash #Filename:nginx.shA=$(ps -ef | grep keepalived | grep -v grep | wc -l)if [ $A -gt 0 ]; then/etc/init.d/nginx startelse/etc/init.d/nginx stopfi

chmod +x /opt/nginx.shsystemctl start keepalived

---------------------------测试---------------------------------systemctl stop keepalivedkillall -9 nginx (yum install psmisc -y)netstat -anpt | grep 80

======================192.168.20.40(lvs02)===========================主配置文件和主服务器一样vi /usr/local/nginx/conf/nginx.conf

在 mime.types;default_type application/octet-stream;下

log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$''"$"$on下增加 include /usr/local/nginx/conf/conf.d/*.conf; #指向子配置文件

cd /usr/local/nginx/conf/mkdir conf.dcd conf.d/vi lvs02.conf

server {listen 80;server_name lvs01 192.168.20.40; index index.html index.jsp;root /usr/local/nginx/html;access_log /usr/local/nginx/logs/tomcat.aa.com_access.log main;location / {proxy_set_header HOST $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header Client-IP $remote_addr;proxy_set_header X-For $proxy_add_x_forwarded_for;proxy_pass pool.conf

upstream center_pool { server 192.168.20.41:8080;server 192.168.20.42:8080;ip_hash;}

vi /etc/init.d/nginx

#!/bin/bash

PROG="/usr/local/nginx/sbin/nginx"PIDF="/usr/local/nginx/logs/nginx.pid"case "$1" instart)$PROG;;stop)kill -s QUIT $(cat $PIDF);;restart)$0 stop$0 start;;reload)kill -s HUP $(cat $PIDF);;*)echo "Usage: $0 {start|stop|restart|reload}"exit 1esacexit 0

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/chmod +x /etc/init.d/nginxchkconfig --add nginxnginx -tservice nginx startnetstat -anpt | grep 80

------------------------部署keepalived------------------------yum -y install popt-devel \kernel-devel \openssl-devel

tar xvf keepalived-1.4.2.tar.gzcd keepalived-1.4.2./configure --prefix=/make && make installcp keepalived/etc/init.d/keepalived /etc/init.d/systemctl enable keepalived cd /etc/keepalived/vi keepalived.conf

! Configuration File for keepalivedglobal_defs {route_id NGINX-02}vrrp_script nginx {script "/opt/nginx.sh"interval 2weight -10}vrrp_instance VI_1 {state BACKUP #状态为backupinterface ens33virtual_router_id 51priority 100 #优先级为100,由此看出是备advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {nginx}virtual_ipaddress {192.168.20.66}}

vi /opt/nginx.sh

#!/bin/bash#Filename:nginx.shA=$(ip addr | grep 192.168.20.66/32 | grep -v grep | wc -l)if [ $A -gt 0 ]; then/etc/init.d/nginx startelse/etc/init.d/nginx stopfi

chmod +x /opt/nginx.shsystemctl start keepalived

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:ICL7107与8031接口的设计
下一篇:log4j如何根据变量动态生成文件名
相关文章

 发表评论

暂时没有评论,来抢沙发吧~