docker+nginx+keepalived环境搭建
2017-03-31 18:12
726 查看
1 背景
目前docker容器已经很普遍的应用于各大场景,淘宝双十一的所有服务都是通过淘宝定制的Alidocker完成部署,为了做到更好地负载均衡,下面讲解下docker容器下的nginx+keepalived的环境搭建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拉取镜像
# dockerpull nginx
注:这里可以将nginx的配置文件映射到宿主机以便于后期进行文件修改
创建数据卷(文件夹映射)
# docker
volume create --name nginx_m_data(主)
创建配置文件进行映射(需要复制已有的配置文件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 权重配置
Upstremblance模块就是为了配置权重以及服务地址及端口
此处由于也是采用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
{
listen 80;
server_name
192.168.125.135;
location / {
proxy_pass http://blance;
}
}
upstream blance{
server 192.168.125.136:8080 weight=5;
server 192.168.125.136:8081 weight=5;
}
最后,由于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 installkernel 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
# cd
keepalived-1.2.2
gcc编译
# ./configure
安装编译
#
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
备机 backup;interface 为本机的IP地址,可以通过ifconfig查看,同时一般默认网卡为th0
3 priority为优先级,主机值大于应大于备机
4
virtual_ipaddress VIP地址,即设定的访问地址
5
读取前面编写的nginx IP地址
3.3
keepAlived的重启生效
在centos7中所有服务命令通过systemctl start(restart)keepALived.service3.4
keepAlived的验证
3.4.1 VIP验证
KeepALived的配置文件配置完成后,重启即会自动绑定VIP,通过命令:ip a 即可查看默认网卡(一般为eth0)下的绑定VIP地址
KeepAlived的验证也类似于nginx的验证,浏览器中输入VIP地址以及nginx的端口即可
相关文章推荐
- docker 中 NGINX+PHP+MYSQL+REDIS+Elasticsearch 环境搭建 (linux系统)
- Docker:搭建tomcat+mysql+web+nginx运行环境
- keepalived+nginx高可用环境搭建
- 用docker搭建php+nginx+laravel的开发环境
- docker 中 NGINX+PHP+MYSQL+REDIS+Elasticsearch 环境搭建 (windows系统)
- Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)
- docker搭建php,nginx,mysql环境
- 使用Docker搭建Django,Nginx,R,Python部署环境
- 使用SSL验证和Nginx做代理搭建生产环境的Docker仓库
- 用docker toolBox 搭建 nginx + flask + redis 环境
- Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)
- Docker搭建 Nginx+PHP+MySQL 环境并部署WordPress实践
- 基于nginx+keepalived实现nginx高可用环境的搭建
- keepalived+nginx高可用环境搭建
- 使用SSL验证和Nginx做代理搭建生产环境的Docker仓库
- 利用docker搭建php7和nginx运行环境全过程(官方镜像)
- 使用Docker搭建Django,Nginx,R,Python部署环境的方法
- 使用Docker搭建Django,Nginx,R,Python部署环境
- centos7:Nginx+docker+springboot的环境搭建(一)