准备两台机器
-
通过vagrant安装两台centos虚拟机
这里也可通过其他方式安装两台虚拟机
-
centos_1:192.168.168.101
-
centos_2:192.168.168.102
vagrant init centos/7
vagrant up
-
链接至虚拟机
vagrant ssh
sudo -i #切换至root
-
配置centos_1
关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
配置静态IP
vim /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO="static"
IPADDR="192.168.168.101"
NETMASK="255.255.255.0"
GATEWAY="192.168.168.1"
DNS1="192.168.168.1"
ONBOOT="yes"
重启网络
systemctl restart network
-
配置centos_2
关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
配置静态IP
vim /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO="static"
IPADDR="192.168.168.102"
NETMASK="255.255.255.0"
GATEWAY="192.168.168.1"
DNS1="192.168.168.1"
ONBOOT="yes"
重启网络
systemctl restart network
-
安装docker
source <(curl -sL https://get.docker.com)
-
启动docker
systemctl enable docker
systemctl start docker
-
安装docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
-
安装nginx
mkdir /opt/nginx -p
mkdir /opt/nginx/certificate -p
mkdir /opt/nginx/conf.d -p
mkdir /opt/nginx/logs -p
cd /opt/nginx
/opt/nginx:nginx部署路径
/opt/nginx/certificate:域名证书部署路径
/opt/nginx/conf.d:nginx配置文件路径
/opt/nginx/logs:nginx配置文件路径
添加docker网络
docker network create app_net
添加docker-compose.yml
vim docker-compose.yml
version: '3.7'
services:
nginx:
restart: always
image: nginx:1.19.2
ports:
- 80:80
- 443:443
volumes:
- ./conf.d:/etc/nginx/conf.d
- ./logs:/var/log/nginx
- ./certificate:/opt/certificate
networks:
- custom_net
networks:
custom_net:
external:
name: app_net
添加配置文件
cd conf.d
vim 80.conf
server {
listen 80;
server_name localhost;
location / {
root /etc/nginx/conf.d/;
try_files $uri $uri/ /index.html;
}
}
vim index.html
101或102
启动nginx
docker-compose up -d
-
安装keepalived
yum update
yum install -y curl gcc openssl-devel libnl3-devel net-snmp-devel
yum install -y keepalived
-
初始化及启动
systemctl start keepalived //启动keepalived
systemctl enable keepalived //加入开机启动keepalived
systemctl restart keepalived //重新启动keepalived
systemctl status keepalived //查看keepalived状态
systemctl stop keepalived //停止keepalived
systemctl disable keepalived //禁用开机启动keepalived
-
centos_1配置
vim /etc/keepalived/keepalived.conf
global_defs {
router_id NodeA
}
vrrp_instance VI_1 {
state MASTER #设置为主服务器
interface eth0 #监测网络接口
virtual_router_id 51 #主、备必须一样
priority 100 #(主、备机取不同的优先级,主机值较大,备份机值较小,值越大优先级越高)
advert_int 1 #VRRP Multicast广播周期秒数
authentication {
auth_type PASS #VRRP认证方式,主备必须一致
auth_pass 1111 #(密码)
}
virtual_ipaddress {
192.168.168.100/24 #VRRP HA虚拟地址
}
}
-
centos_2配置
vim /etc/keepalived/keepalived.conf
global_defs {
router_id NodeB
}
vrrp_instance VI_1 {
state BACKUP #设置为备用服务器
interface eth0 #监测网络接口
virtual_router_id 51 #主、备必须一样
priority 90 #(主、备机取不同的优先级,主机值较大,备份机值较小,值越大优先级越高)
advert_int 1 #VRRP Multicast广播周期秒数
authentication {
auth_type PASS #VRRP认证方式,主备必须一致
auth_pass 1111 #(密码)
}
virtual_ipaddress {
192.168.168.100/24 #VRRP HA虚拟地址
}
}
-
重启keepalived
systemctl restart keepalived
-
查看及验证
ip a
停掉centos_1上的keepalived
systemctl stop keepalived