# haproxy-keepalived-nginx **Repository Path**: piao/haproxy-keepalived-nginx ## Basic Information - **Project Name**: haproxy-keepalived-nginx - **Description**: HAproxy + keepalived + nginx - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2019-12-04 - **Last Updated**: 2021-07-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: HAProxy, keepalived, Nginx ## README # haproxy-keepalived-nginx dockerfiles that support HAproxy + keepalived + nginx working environment ## 简介 用 Docker 容器服务的方式搭建实现 HAproxy + keeepalived 高可用服务 。使用前需了解 Docker 的基本概念,常用基本命令。 可以一条条命令执行docker命令来构建镜像,容器。这里推荐使用 docker-compose 来管理,执行项目,下面是使用流程。 相关软件版本: - keepalived 2.0.19 - haproxy 2.0.9 - nginx 1.16 ## 使用 ### 1.安装 Docker,Docker-compose - ![Docker,详见官方文档](https://docs.docker.com/engine/installation/linux/docker-ce/centos/) - ![docker-compose,文档](https://docs.docker.com/compose/install/) - ![nginx config](https://docs.docker.com/engine/swarm/configs/) ``` sudo pip install -U docker-compose ``` ### 2.下载 php-docker 直接 clone: ``` git clone git@github.com:piao/php-docker.git ``` 或者下载 zip 压缩包也可以。 ### 3.下载需要的拓展包 先下载好要使用的拓展包,如果编译出错要多次构建容器就可以省掉下载时间。 ``` HAproxy 1 ---------------> Nginx 1 / | |------------| / | |user request| ---> DNS Server keepalived |------------| \ | \ | HAproxy 2 ---------------> Nginx 2 user request -> DNS Server -> HAproxy(1,2 keepalived双主模型) -> Nginx(1,2...) ``` ### 4.docker-compose 构建项目 进入 docker-compose.yml 所在目录: 执行命令: ``` docker-compose up --build -d mongo-db docker-compose up --build -d docker-compose up ``` 如果没问题,下次启动时可以以守护模式启用,所有容器将后台运行: ``` docker-compose up -d docker exec -it files_mongo-db_1 sh -c "mongo -u root -p 123456 admin" docker exec -it files_mongo-db_1 sh -c "mongo -u test1 -p 123456 admin" ``` windows下运行: ``` winpty docker exec -it files_mongo-db_1 bash winpty docker exec -it files_svr_1 bash winpty docker exec -it files_svr_1 sh -c "ps aux | grep uLog" ``` 使用 docker-compose 基本上就这么简单,Docker 就跑起来了,用 stop,start 关闭开启容器服务。 更多的是在于编写 dockerfile 和 docker-compose.yml 文件。 可以这样关闭容器并删除服务: ``` docker-compose down ``` ### 5. 使用 Composer zPhal 项目依赖 Composer 进行构建。 我们在创建 PHP-fpm 容器时就已经将 Composer 安装在容器中,可以运行该容器进行 Composer 操作。 用 docker-compose 进行操作: ``` docker-compose run --rm -w /data/www/zPhal php-fpm composer update ``` `-w /data/www/zPhal`为在php-fpm的工作区域,zPhal项目也是挂载在里面,所有我们可以直接在容器里运行composer。 或者进入宿主机(容器外部)app 目录下用 docker 命令: ``` cd zPhal-dockerfiles/app docker run -it --rm -v `pwd`:/data/www/ -w /data/www/zPhal files_php-fpm composer update ```