keepalived+nginx高可用部署(一主一备)
·
一.nginx部署
| IP | 主机名 | 系统 |
|---|---|---|
| 192.168.100.50 | server1(主) | CentOS 7 |
| 192.168.100.60 | server2(备) | CentOS 7 |
1.安装nginx (编译安装,不要使用yum安装)
#先安装C语言和编译安装的环境 yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel -y #下载nginx环境 [root@server ~]# cd /usr/local/src/ [root@server /usr/local/src/]# wget http://nginx.org/download/nginx-1.13.0.tar.gz [root@server /usr/local/src/]# tar -zxvf nginx-1.13.0.tar.gz
2.编译安装nginx
[root@server /usr/local/src/]# cd nginx-1.13.0 #./configure 是运行nginx安装脚本 --prefix是配置安装路径 [root@server /usr/local/src/nginx-1.13.0]# ./configure --prefix=/usr/local/nginx #make && make install 开始编译安装 [root@server /usr/local/src/nginx-1.13.0]# make && make install
3.配置nginx配置文件
[root@server /usr/local/src/nginx-1.13.0]# vi /usr/local/nginx/conf/nginx.conf #修改以下两处地方,找到并修改 user root; listen 88;
4.修改 Nginx 欢迎首页内容(用于后面测试, 用于区分两个节点的 Nginx):
[root@server /usr/local/src/nginx-1.13.0]#vi /usr/local/nginx/html/index.html 192.168.100.50 中的标题加 50 <h1>Welcome to nginx! 1</h1> 192.168.100.60 中的标题加 60 <h1>Welcome to nginx! 2</h1>
5.测试是否安装成功
[root@server /usr/local/src/nginx-1.13.0]# /usr/local/nginx/sbin/nginx -t #若出现以下显示则成功 nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
6.启动nginx (可以在网上查找资料,将其彻底加入系统服务,仅用systemctl start nginx就能启动)
[root@server /usr/local/src/nginx-1.13.0]# /usr/local/nginx/sbin/nginx #启动 [root@server /usr/local/src/nginx-1.13.0]# /usr/local/nginx/sbin/nginx -s reload #重启 [root@server /usr/local/src/nginx-1.13.0]# /usr/local/nginx/sbin/nginx -s stop #关闭 [root@server ~]# vi /etc/rc.local #添加nginx开机自启 /usr/local/nginx/sbin/nginx
7.安装完成后访问192.168.100.50:88 #出现以下界面即成功

二.keepalived部署(双机主备)
参考文章Keepalived 原理与实战 - 知乎 (zhihu.com)
1.主节点server1安装keepalived(编译安装)
安装包地址(尽量选择新版本): Keepalived for Linux
[root@server1 ~]# tar -zxvf keepalived-2.0.18.tar.gz -C /usr/local/src/ [root@server1 ~]# cd /usr/local/src/ [root@server1 /usr/local/src/]# mv keepalived-2.0.18 keepalived #安装必要的辅助环境 [root@server1 /usr/local/src/]# yum -y install libnl libnl-devel #开始安装 [root@server1 /usr/local/src/keepalived]# ./configure --prefix=/usr/local/keepalived --sysconf=/etc #prefix:keepalived安装的位置 #sysconf:keepalived核心配置文件所在位置,固定位置,改成其他位置则keepalived启动不了,/var/log/messages中会报错 [root@server1 /usr/local/src/keepalived]# make && make install
2.配置并启动
#将keepalived 添加为系统服务 [root@server1 etc]# pwd #显示路径 /usr/local/src/keepalived/keepalived/etc [root@server1 etc]# ll #查看文件详细信息 total 44 drwxrwxr-x 2 1000 1000 86 Apr 16 13:47 init drwxrwxr-x 2 1000 1000 109 Apr 16 13:47 init.d drwxrwxr-x 2 1000 1000 109 Apr 16 13:48 keepalived -rw-r--r-- 1 root root 19849 Apr 16 13:47 Makefile -rw-rw-r-- 1 1000 1000 191 Mar 5 2021 Makefile.am -rw-rw-r-- 1 1000 1000 18797 Mar 6 2021 Makefile.in drwxrwxr-x 2 1000 1000 24 May 30 2020 openrc drwxrwxr-x 2 1000 1000 117 Apr 16 13:48 sysconfig [root@server1 etc]# cp init.d/keepalived /etc/init.d/ [root@server1 etc]# cp sysconfig/keepalived /etc/sysconfig/ #如需覆盖,尽情覆盖
#启动keepalived,先刷新服务,配置基础文件
[root@server1 etc]# systemctl daemon-reload
#先修改配置文件
[root@server1 etc]# cd /etc/keepalived/
[root@server1 keepalived]# vi keepalived.conf
#根据以下信息对自己的配置文件进行修改
global_defs {
# 路由id:当前安装keepalived的节点主机标识符,保证全局唯一
router_id keep_104
}
vrrp_instance VI_1 {
# 表示状态是MASTER主机还是备用机BACKUP
state MASTER
# 该实例绑定的网卡名称
interface ens34 #我的100网段对应的是ens34
# 保证主备节点一致即可
virtual_router_id 51
# 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选
priority 100
# 主备之间同步检查时间间隔,单位秒
advert_int 2
# 认证权限密码,防止非法节点进入
authentication {
auth_type PASS
auth_pass 1111
}
# 虚拟出来的ip,可以有多个(vip)
virtual_ipaddress {
192.168.100.16 #这里我弄的100.16
}
}
#修改完后启动keepalived
[root@server1 keepalived]# systemctl start keepalived
#启动后查看进程
[root@server1 keepalived]# ps -ef | grep keepalived
root 1524 1 0 16:00 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D
root 1525 1524 0 16:00 ? 00:00:01 /usr/local/keepalived/sbin/keepalived -D
root 1526 1524 0 16:00 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D
root 1594 1495 0 16:43 pts/0 00:00:00 grep --color=auto keepalived
备份节点server2安装过程与server1一样,只是配置文件修改的地方不同
[root@server2 keepalived]# vi keepalived.conf
global_defs {
router_id keep_105
}
vrrp_instance VI_1 {
# 备用机设置为BACKUP
state BACKUP
interface ens34
virtual_router_id 51
# 权重低于MASTER
priority 80
advert_int 2
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
# 注意:主备两台的vip都是一样的,绑定到同一个vip
192.168.100.16
}
}
#配置完成后启动即可
然后两台机器keepalived都启动完成后,访问192.168.100.16:88,如果没有问题会默认直接跳转到192.168.100.50:88,当把server1的keepalived服务停掉之后,再次访问192.168.100.16:88,会直接跳转到192.168.100.60:88
三. keepalived 双机互为主备
互为主备的意思就是既是主服务器,又是热备服务器
安装过程相同,不同地方在于配置文件的编写,确保nginx运行正常
更多推荐



所有评论(0)