简介
- 在同一台服务器上(阿里云服务器),使用docker搭建nginx集群。
- 创建三个nginx容器,其中一台需要进行宿主主机的端口映射作为主服务器,其余容器不需要端口映射,也不需要配置桥接网络,默认即可。
实操
创建容器
-
获取镜像:
docker pull daocloud.io/nginx
。 -
docker run -itd --name nginx_master -p 8080:80 daocloud.io/nginx /bin/bash
创建nginx主服务容器,将容器的80端口映射到宿主主机的8080端口。 -
docker exec -it nginx_master bash
进入容器,/usr/sbin/nginx
启动nginx -
创建两个从nginx容器:
docker run -itd --name nginx_slave1 daocloud.io/nginx /bin/bash
docker run -itd --name nginx_slave2 daocloud.io/nginx /bin/bash -
进入从nginx容器,启动(和主nginx一样启动,操作)(一定要都启动)
-
docker ps 查看以运行容器
-
- 打开一个终端查看容器的网络信息:
- docker network ls
- docker network inspect 对应你实际NETWORK ID
-
- 进入 nginx_master :docker exec -it nginx_master bash
- 修改配置文件 :
vim /etc/nginx/conf.d/default.conf
(这是可能会报 :
-bash: yum: command not found 运行:apt-get update & apt-get install vim)
-
upstream 172.17.0.2 {
server 172.17.0.3;
server 172.17.0.4;
server {listen 80;
server_name localhost;
location / {
proxy_pass http://172.17.0.2;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
} service restart nginx
重启服务。
从nginx配置
-
在两个slave容器中,分别修改默认站点的首页,添加各自的ip来标识。
vim /usr/share/nginx/html/index.html
-
-
效果图: