获取镜像
1 | docker search nginx |
安装官方版本
name: docker.io/nginx
OFFICIAL: ok
1 | docker pull nginx |
启动
1 | mkdir -p ./nginx/www ./nginx/logs ./nginx/conf |
name: 容器名称。
-d:设置容器在在后台一直运行。
-p: 端口进行映射,将本地9803端口映射到容器内部的80端口。
www: 目录将映射为nginx容器配置的虚拟目录。
logs: 目录将映射为nginx容器的日志目录。
conf: 目录里的配置文件将映射为nginx容器的配置文件。
配置
index.html
1 | cd ./nginx/www |
配置默认页面
1 | vi /home/nginx/conf/nginx.conf |
配置nginx文件及反向代理
测试
1 | docker restart c7d0b0a20287e |
说明
设备状态
- own:表示单前的server暂时不参与负载.
- weight:默认为1.weight越大,负载的权重就越大。
- max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误.
- fail_timeout : max_fails次失败后,暂停的时间。
- backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻
分配策略
none(轮询)
upstream按照轮询(默认)方式进行负载,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。虽然这种方式简便、成本低廉。但缺点是:可靠性低和负载分配不均衡。weight(权重)
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。例如server 192.168.61.22 weight = 6; # 60% 请求
server 192.168.61.23 weight = 4; # 40% 请求ip_hash(访问ip)
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。配置只需要在upstream中加入ip_hash即可。