一、docker安装nginx
1.查看nginx版本
[root@localhost ~]# docker search nginx
2.获取最新版本的Nginx镜像
# 我拉的是官方的版本
[root@localhost ~]# docker pull nginx:latest
3.查看本地已经下载镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest d1a364dc548d 7 days ago 133MB
4.运行容器
# 参数说明:
# --name nginx 容器名字
# -p 80:80 将本地80端口映射成容器内部80端口
[root@localhost ~]# docker run --name nginx -p 80:80 -d nginx
5.查看已启动容器
说明:
- 显示nginx,说明容器已经启动,这时就可以正常访问了
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e47bfbac7a0b nginx "/docker-entrypoint.…" 28 minutes ago Up 16 minutes 0.0.0.0:80->80/tcp nginx
8e01736b1e21 redis "docker-entrypoint.s…" 7 days ago Up 19 hours 0.0.0.0:6379->6379/tcp redis-test
- 浏览器输入:http://172.16.47.2:80 这时我本地ip
二、nginx配置负载均衡
1.打开nginx配置文件
- 进入nginx容器
-
[root@localhost ~]# docker exec -it nginx bash root@e47bfbac7a0b:/#
- 进入容器无法使用vi 或者是vim 需要安装
-
root@e47bfbac7a0b:/# apt-get update root@e47bfbac7a0b:/# apt-get install vim
- 此时就可以编辑nginx.conf文件了
-
root@e47bfbac7a0b:/# vim /etc/nginx/nginx.conf
1.内置负载策略
-
Nginx负载均衡是通过upstream模块来实现的,内置实现了三种负载策略,配置还是比较简单的。官网负载均衡配置说明:http://nginx.org/en/docs/http/load_balancing.html
轮循(默认)
Nginx根据请求次数,将每个请求均匀分配到每台服务器
最少连接
将请求分配给连接数最少的服务器。Nginx会统计哪些服务器的连接数最少。
IP Hash
绑定处理请求的服务器。第一次请求时,根据该客户端的IP算出一个HASH值,将请求分配到集群中的某一台服务器上。后面该客户端的所有请求,都将通过HASH算法,找到之前处理这台客户端请求的服务器,然后将请求交给它来处理。
http { upstream nginxtest { server 10.101.3.47:1111; server 10.101.3.47:2222; } server { listen 80; location / { proxy_pass http://nginxtest; } } }