[随笔] docker上使用nginx进行负载均衡示例

来源:互联网 发布:淘宝联盟机器人免费版 编辑:程序博客网 时间:2024/06/05 12:39

一 安装docker

1. 下载Docker ToolBoxhttps://download.docker.com/win/stable/DockerToolbox.exe,具体可参考文档https://docs.docker.com/toolbox/
2. 双击安装toolbox,勾上所有组件并安装所提示的各种设备软件
3. 启动Docker Quickstart Terminal,此时可能弹出需要指定bash.exe目录的提示,选择git/bin/bash.exe即可
4. 输入docker version或者docker info确认是否安装正确
如果出现error during connect. This error may also indicate that the docker daemon is not running。那么说明docker-machine的环境没有配置。使用docker-machine env查看环境配置,如下
$ docker-machine envexport DOCKER_TLS_VERIFY="1"export DOCKER_HOST="tcp://192.168.99.100:2376"export DOCKER_CERT_PATH="C:\Users\Administrator\.docker\machine\machines\default"export DOCKER_MACHINE_NAME="default"export COMPOSE_CONVERT_WINDOWS_PATHS="true"# Run this command to configure your shell:# eval $("D:\Program Files\Docker Toolbox\docker-machine.exe" env)

根据上述提示,执行最后一行即可
eval $("D:\Program Files\Docker Toolbox\docker-machine.exe" env)
再次执行docker version或者docker info则可正确显示docker的版本信息

5. 查看虚拟机列表docker-machine ls
6. 添加新的虚拟机docker-machine create --driver virtualbox VM_NAME
7. 删除虚拟机docker-machine rm VN_NAME

二 使用nginx进行负载均衡

8. 启动两个spring-boot应用程序的容器
docker run -p 8081:8080 --name web1 -it app.jar /bin/bashdocker run -p 8082:8080 --name web2 -it app.jar /bin/bash

9. 启动nginx容器
docker run -p 8083:80 -it nginx /bin/bash
进入容器后,在/etc/nginx/conf.d/中修改default.conf配置。

在使用docker容器时,有时候里边没有安装vim,使用vim命令时提示vim: command not found,则需要安装vim,使用apt-get install vim命令,若提示:
Reading package lists... DoneBuilding dependency tree       Reading state information... DoneE: Unable to locate package vim

则使用apt-get update,同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,获取到最新的软件包。等更新完毕以后再敲命令:apt-get install vim命令即可。

在default.conf行首加入
upstream balance {    server 192.168.99.100:8081;    server 192.168.99.100:8082;}

在default.conf的server层级下加入
location / {    proxy_pass http://balance;}

10. 执行nginx命令启动nginx,在浏览器中访问http://192.168.99.100:8083,即可看到轮流访问的是192.168.99.100:8081和192.168.99.100:8082两个应用
11. 修改upstream balance,设置real server的权重,并重新加载配置,访问http://192.168.99.100:8083,可以发现轮流访问两个real server的频次比例改变
upstream balance {    server 192.168.99.100:8081 weight=9;    server 192.168.99.100:8082 weight=1;}
保存后nginx -s reload重新加载配置

三 nginx相关命令

nginx -s reload 修改配置后重新加载生效
nginx -s reopen重新打开日志文件
nginx -t -c /path/to/nginx.conf测试nginx配置文件是否正确

关闭nginx:
nginx -s stop快速停止nginx
quit完整有序的停止nginx

其他的停止nginx 方式:
ps -ef | grep nginx
kill -QUIT 主进程号从容停止Nginx
kill -TERM 主进程号快速停止Nginx
pkill -9 nginx强制停止Nginx

启动nginx:
nginx -c /path/to/nginx.conf

平滑重启nginx:
kill -HUP 主进程号

四 配置docker加速器

可以使用如下的脚本将mirror的配置添加到docker daemon的启动参数中。
docker-machine ssh default "echo 'EXTRA_ARGS=\"--registry-mirror=https://pee6w651.mirror.aliyuncs.com\"' | sudo tee -a /var/lib/boot2docker/profile"docker-machine restart default 
docker info查看修改后的mirror


原文地址 https://mp.weixin.qq.com/s?__biz=MzUzNTU0OTQxMQ==&mid=2247483658&idx=1&sn=15e4576427165e59bb0471dc7b688dec&chksm=fa828586cdf50c90658758360b194eda3f818087b51443b12596d8feb07b16e72169f2e55b50&scene=0#rd

更多好文章请关注 [互联网技术爱好者]



原创粉丝点击