记录一下Centos7+Nginx+keepalived高可用搭建
搭建前准备
我们拿两台虚拟机来搭建nginx高可用环境,这两台设备分别是192.168.32.122 和 192.168.32.123并且都能够上网。
虚拟机搭建可以参考 https://blog.csdn.net/weixin_35790330/article/details/83240618 这篇博客来学习。
配置静态IP和配置上网可以参考https://blog.csdn.net/qq_34924407/article/details/79967650
以下内容转载博客
https://blog.csdn.net/u012453843/article/details/69396434
https://blog.csdn.net/li741738798/article/details/117017743?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-0.no_search_link&spm=1001.2101.3001.4242.1
https://blog.csdn.net/lixin412524/article/details/112480605
https://blog.csdn.net/qq_40664441/article/details/102868961
我只是综合了一下各位大佬的代码
开始:
我这边使用的是SecureCrt.exe来敲命令,
登录上你的两台虚拟机就可以实现同时向两台虚拟机发送命令了。
下载完之后首先打开水平平铺
接着打开交互窗口
选择多个窗口即可
安装依赖
1.安装vim命令,使用命令:yum install vim-enhanced
2.安装gcc,使用命令:yum install make cmake gcc gcc-c++
3.安装依赖:yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel wget
安装nginx
1.下载nginx安装包
wget http://nginx.org/download/nginx-1.6.2.tar.gz
2.解压nginx-1.6.2.tar.gz到/usr/local/目录下
tar -zxvf nginx-1.6.2.tar.gz -C /usr/local/
3.cd /usr/local
进入到/usr/local目录下,可以看到我们解压后的nginx-1.6.2文件夹了,然后我们进行configure配置,命令:cd nginx-1.6.2 && ./configure --prefix=/usr/local/nginx
。可以看出,这条命令是组合命令,先进入nginx-1.6.2目录然后在执行./configure命令。
4.编译安装
make && make install
5.启动Nginx
/usr/local/nginx/sbin/nginx
启动完之后检查nginx是否已经正常启动
ps -ef | grep nginx
看到如下信息说明正常启动。
6.配置防火墙策略
firewall-cmd --permanent --add-port=80/tcp
#添加端口
添加完80端口后重启防火墙即可在本机访问虚拟机IP网址(nginx默认80端口)
firewall-cmd --reload
#重新加载防火墙策略
firewall-cmd --list-all
查看策略
防火墙相关命令:
1、查看防火墙状态 : systemctl status firewalld.service
注:active是绿的running表示防火墙开启
2、关闭防火墙 :systemctl stop firewalld.service
3、开机禁用防火墙自启命令 :systemctl disable firewalld.service
4、启动防火墙 :systemctl start firewalld.service
5、防火墙随系统开启启动 : systemctl enable firewalld.service
6、重启防火墙 : firewall-cmd --reload
7.修改一下nginx的index页面 好区分不同虚拟机
(1)cd /usr/local/nginx/html
(2)vi index.html
(3)进来修改页面后按A进行编辑,编辑完成后按esc键输入:wq保存退出
虚拟机1
虚拟机2
(4)重启nginx刷新页面就可以看到修改的页面了
cd /usr/local/nginx/sbin
./nginx -s reload
安装Keepalived
安装依赖yum install curl libnl3-devel net-snmp-devel libnfnetlink-devel -y
1.下载keepalived安装包
wget --no-check-certificate https://www.keepalived.org/software/keepalived-1.2.18.tar.gz
2.解压,我们在下面的输入框中输入tar -zxvf keepalived-1.2.18.tar.gz -C /usr/local/
并按回车即可在两台设备同时进行解压操作。
3.这时候在local下已经可以看到有keealived安装包了
对keepalived进行配置,我们在下面的输入框中输入
cd keepalived-1.2.18/ && ./configure --prefix=/usr/local/keepalived
并按回车即可在两台设备同时进行配置。
4.进行编译安装,我们在下面的输入框中输入make && make install
并按回车,即可在两台设备同时进行编译安装。
安装完nginx之后,我们把keepalived做成一个服务,这样可以做到开机自动启动,步骤如下:
1、创建/etc/keepalived
目录,我们在下面的输入框中输入mkdir /etc/keepalived
并按回车,即可同时在两台设备上创建/etc/keepalived。
2、复制几个文件到指定目录
先复制第一个文件,我们在下面的输入框中输入
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
并按回车,即可在两台设备同时完成复制操作。
下面复制第二个文件,我们在下面的输入框中输入
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
并按回车,即可同时在两台设备上完成复制该文件操作。
下面复制第三个文件,我们在输入框中输入
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
并按回车,即可在两台设备同时执行复制文件操作。
3、创建软链接
我们在下面的输入框中输入ln -s /usr/local/sbin/keepalived /usr/sbin/
并按回车即可完成在两台设备上同时创建软链接。
4、创建keepalived.service文件
vim /lib/systemd/system/keepalived.service
文件内容:
[Unit]
Description=Keepalived
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/var/run/keepalived.pid
ExecStart=/usr/local/keepalived/sbin/keepalived -D
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
5、配置systemctl
systemctl daemon-reload
重新加载
systemctl enable keepalived.service
设置开机自动启动
systemctl disable keepalived.service
取消开机自动启动
systemctl start keepalived.service
启动
systemctl stop keepalived.service
停止
设置完开机自动启动后输入systemctl list-units
查看有没有keepalived,有的话就说明已经设置成功
keepalived来实现nginx的高可用
keepalived搭建这里可以根据https://blog.csdn.net/u012453843/article/details/69668663这个博客来搭建,搭建到nginx_check.sh脚本权限放开后。
重启keepalived
service keepalived restart
查看keep运行状态确认它运行正常,并且已经绑定VIP到网卡
systemctl status keepalived.service -l
ip a
一切正常的话就可以用你配置的共同虚拟IP地址来访问了,这里刚访问的是权重比较高的nginx1
这时候在122主机上把keepalived服务断掉
systemctl stop keepalived.service
刷新页面访问的就是nginx2的页面了
至此,Centos7+Nginx+keepalived高可用搭建完成。