您的位置:首页 > 运维架构 > Docker

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

2017-12-21 15:23 639 查看

一 安装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 env
export 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/bash
docker run -p 8082:8080 --name web2 -it app.jar /bin/bash
<
4000
br />
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... Done
Building dependency tree
Reading state information... Done
E: 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

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: