1 背景
2 Nginx的主备搭建
2.1 Nginx的安装
Nginx地址:192.168.125.134(主)192.168.125.135(备)
注:以下操作主备都需要操作
2.1.1搜索镜像
利用docker容器的官方容器将Nginx镜像拉到本地
# docker search nginx
2.1.2拉取镜像
# docker pull nginx
注:这里可以将nginx的配置文件映射到宿主机以便于后期进行文件修改
创建数据卷(文件夹映射)
# docker volume create
创建配置文件进行映射(需要复制已有的配置文件nginx.conf,并新建目录作为后期映射目录)
本人保存目录:/opt/dockerconf/nginx_m(主)
由于nginx非数据库,不会产生重要数据,我们在此利用第二种文件映射
2.1.3启动容器
master# docker run –d –it –v /opt/dockerconf/nginx/nginx.conf:/etc/nginx/nginx.conf –name nginx-master –p 80:80 nginx
注:可以增加参数—restart=always 表示当docker服务启动,该容器自动启动
2.1.4 查看容器状态
显示状态为up即可
# docker ps
2.1.5 注意事项
首先注意文件命名问题,最好严格按照主备名称命名 master/slaver
其次是端口映射问题,由于主备nginx不在同一台机器上,端口必须保持一致
2.2 Nginx 配置
由于我们在启动容器已经将docker容器中的配置文件映射到宿主机,所以修改时不用进入docker容器,只用修改宿主机并重启docker容器即可
2.2.1 修改监听端口
一般nginx默认监听端口为80,可以修改为其他非占用端口,但是注意docker容器我们在启动的时候已经将nginx端口默认映射出去,所以如果需要自定义,那么需要docker容器重新启动,并映射自定义端口
2.2.2 服务名配置
服务名可以配置为自定义的名称,但一般默认为nginx宿主机IP较好
2.2.3 权重配置
Upstrem blance模块就是为了配置权重以及服务地址及端口
此处由于也是采用docker容器的tomcat服务,所以配置IP为tomcat容器的宿主机IP以及对应映射地址
权重参数weight,比例越大,该服务器承受访问次数越多
2.2.4 重启容器
在配置文件成功后,即可重启容器,nginx非容器下,重启在/usr/sbin下执行./nginx –s reload即可
# docker ps
# docker restart 863a1c819af8
2.2.5 注意事项
首先,在配置文件时,由于我们已经将docker容器中/etc/nginx/nginx.conf映射到宿主机,所以在配置时,只用修改宿主机的配置文件,并重启即可生效
其次,新建的nginx容器没有server模块,复制下列server模块放置到http模块中即可
server {
最后,由于nginx需要主备两台机器,所以以上操作需要同样在备机上进行操作,注意命名规范即可
2.3 Nginx的验证
2.3.1 tomcat容器的配置说明
我们建立nginx默认已经是在以上配置的权重部分IP存在对应的tomcat容器,因此我们可以直接进行验证nginx的配置
Tomcat由于我们将nginx监听端口设置为80 ,则需要将tomcat的端口地址改为80
路径:/usr/lcoal/tomcat/conf/server.xml
同时为了验证nginx,我们需要在/usr/local/tomcat/webapps/ROOT中新建html,内容为当前容器IP等特有信息
2.3.2 Nginx验证
通过浏览器访问nginx的server名称以及映射端口,刷新过程中会随机出现tomcat主备中不同内容,即可判断nginx安装配置成功
3 keepAlived的搭建
3.1 keepAlived的依赖
3.1.1 gcc等相关依赖
# yum -y install gcc gcc+ gcc-c++
# yum install popt-devel openssl openssl-devel libssl-dev libnl-devel popt-devel
3.1.2 安装内核
# yum -y install kernel kernel-devel
3.2 keepAlived的安装
3.2.1 keepAlived下载、编译
获取安装包
# wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz
解压安装包
# tar -zxvf keepalived-1.2.2.tar.gz
gcc编译
安装编译
# make
# make install
3.2.2 拷贝相关文件
cp /usr/local/sbin/keepalived /usr/sbin/
cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
cp -r /usr/local/etc/keepalived/ /etc/
3.2.3 配置文件修改
---参数说明
1 配置对应的nginx服务所在IP地址以及对应的端口号(此处应该是docker容器映射到宿主机的端口号)
2 主备机标识,主机master 备机
3 priority为优先级,主机值大于应大于备机
4 virtual_ipaddress VIP地址,即设定的访问地址
5 读取前面编写的nginx IP地址
3.3 keepAlived的重启生效
在centos7中所有服务命令通过systemctl start(restart)keepALived.service
3.4 keepAlived的验证
3.4.1 VIP验证
KeepALived的配置文件配置完成后,重启即会自动绑定VIP,通过命令:ip a 即可查看
默认网卡(一般为eth0)下的绑定VIP地址
KeepAlived的验证也类似于nginx的验证,浏览器中输入VIP地址以及nginx的端口即可