原理图:
Nginx+keepalived 高可用
主:192.168.80.181
从:192.168.80.182
在两台虚拟机上都做的操作:
关闭firewalld(systemctl stop firewalld.service,systemctl disable firewalld.service),设置selinux为permissive(setenforce 0 或 vim /etc/selinux/config);同时确保DR1和DR2节点的网卡支持MULTICAST(多播)通信。通过命令ifconfig可以查看到是否开启了MULTICAST:
释放网络yum源 挂载光盘 NAT模式联网
yum install epel-release -y //安装一个epel源
yum install keepalived Nginx -y //安装keepalived服务
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
route_id Nginx-01
}vrrp_script Nginx {
script "/opt/Nginx.sh"
interval 2
weight -10
}
vrrp_instance VI_1 {
state MASTER
interface ens32
virtual_router_id 51
! Configuration File for keepalived
! Configuration File for keepalivedglobal_defs {
route_id Nginx-01
}vrrp_script Nginx {
script "/opt/Nginx.sh"
interval 2
weight -10
}
vrrp_instance VI_1 {
state MASTER
interface ens32
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
}
track_script {
Nginx
}virtual_ipaddress {
192.168.80.188
}
scp /etc/keepalived/keepalived.conf [email protected]:/etc/keepalived/keepalived.conf //发送到从服务器
编写脚本主脚本 :
vi /opt/Nginx.sh
//脚本内容
#!/bin/bash
A=$(ps -ef | grep keepalived | grep -v grep | wc -l )
if [ $A -gt 0 ];then
systemctl start Nginx
else
systemctl stop Nginx
fichmod +x /opt/Nginx.sh
systemctl start keepalived
netstat -anpt | grep Nginx
编写 从 脚本:
#!/bin/bash
A=$(ip addr | grep 192.168.80.188/32 | grep -v grep | wc-l)
if [ $A -gt 0];then
systemctl start Nginx
else
systemctl stop Nginx
fi因为主服务器keepalived开启的原因,从的并无法开启,可以cat /var/log/messages查看
scp /etc/Nginx/Nginx.conf 192.168.80.182:/etc/Nginx/Nginx.conf
.
varnish服务器 两台 192.168.80.183 192.168.80.184
yum install epel-release -y
yum install varnish -y
vi /etc/varnish/varnish.params
vi /etc/varnish/default.vcl
backend web1 {
.host = "192.168.80.185";
.port = "80";
}
backend web2 {
.host = "192.168.80.186";
.port = "80";
}sub vcl_recv {
if ( req.url ~ "(?i)\.PHP$") {
set req.backend_hint = web1;
} else {
set req.backend_hint = web2;
}
varnishd -C -f /etc/varnish/default.vcl > /dev/null //检测语法有没有问题 无输出说明没有问题
systemctl start varnish
netstat -anpt | grep varnish
两台操作一样。
LAMP 一台提供静态网页一台提供动态网页 192.168.80.185 192.168.80.186 (都是仅主机模式)
192.168.80.185 提供动态网页
systemctl stop firewalld
setenforce 0
yum install -y httpd mariadb-server mariadb PHP PHP-MysqL PHP-gd libjpeg* PHP-ldap PHP-odbc PHP-pear PHP-xml PHP-xmlrpc PHP-mhash
vi /etc/httpd/conf/httpd.conf
echo "<h1>192.168.80.181</h1>" > /var/www/html/index.PHP
192.168.80.186 提供静态网页
vi /etc/httpd/conf/httpd.conf
echo "<h1>192.168.80.182</h1>" > /var/www/html/index.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。