本文目录导航:
经常使用docker成功nginx负载平衡
Docker部署Nginx成功负载平衡试验环境:Centos7、Docker、Nginx。
应用宿主机和两个nginx容器来成功负载平衡,宿主机无任何内容。
只搭载一台nginx主机,并由此台主机将恳求转发给两个nginx容器来启动解决。
不知道什么是nginx负载平衡,请移步nginx负载平衡。
一、装置关系环境1.装置Docker(团体介绍性能阿里云源)\2.宿主机装置Nginx
封锁防火墙和selinux
[root@iZbp18vj2il5rgv6uy66xxZ~]#//Centos7封锁防火墙命令[root@iZbp18vj2il5rgv6uy66xxZ~]#setenforce0//暂时封锁SELinux//假设是宝塔装置,则省略[root@iZbp18vj2il5rgv6uy66xxZ~]#yuminstalldocker-y[root@iZbp18vj2il5rgv6uy66xxZ~]#wget~]#yuminstallnginx-y传送门:selinux是什么、centos7防火墙命令
用命令测试能否成功装置能否开启服务
//假设是宝塔装置,则省略[root@iZbp18vj2il5rgv6uy66xxZ~]#[root@iZbp18vj2il5rgv6uy66xxZ~]#7启动服务命令与6.x不同哦测试web页面能否显示成功
齐全ok没疑问!!!
咱们先删除掉nginx自动html,并创立一个空白繁难咱们性能成功后检查成果
pullnginx镜像
[root@iZbp18vj2il5rgv6uy66xxZwww]#dockerpullnginxUsingdefaulttag:latestlatest:Pullingfromlibrary//library/nginx:latestpull成功经常使用dockerimages命令检查
[root@iZbp18vj2il5rgv6uy66xxZwww]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEnginxlatestf8f4ffc8092c7daysago133MBdockerrun创立容器
//容器名:nginx_web1映射容器8080端口到宿主机80端口上dockerrun-p8080:80--namenginx_web1-itnginx/bin/bash进入nginx_web1容器的nginx目录下创立一个
root@9f88cab79ac8:/#cd/usr/share/nginx/html/root@9f88cab79ac8:/usr/share/nginx/html#@9f88cab79ac8:/usr/share/nginx/html#@9f88cab79ac8:/usr/share/nginx/html#echohellonginx_web1ninetySeven>@9f88cab79ac8:/usr/share/nginx/html#exit上方创立多一个新的nginx容器
//容器名:nginx_web2映射容器8080端口到宿主机80端口上dockerrun-p8081:80--namenginx_web2-itnginx/bin/bash进入nginx_web2容器的nginx目录下创立一个
root@f1b7fcac2dad:/#cd/usr/share/nginx/html/root@f1b7fcac2dad:/usr/share/nginx/html#@f1b7fcac2dad:/usr/share/nginx/html#@f1b7fcac2dad:/usr/share/nginx/html#echohellonginx_web2ninetySeven>@f1b7fcac2dad:/usr/share/nginx/html#exit先检查容器
[root@iZbp18vj2il5rgv6uy66xxZwww]#dockerps-aCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMESf1b7fcac2dadnginx/docker-entrypoint.…4minutesagoUpaboutaminute0.0.0.0:8081->80/tcp,:::8081->80/tcpnginx_web29f88cab79ac8nginx/docker-entrypoint.…10minutesagoUp49seconds0.0.0.0:8080->80/tcp,:::8080->80/tcpnginx_web1exit分开后容器不运转先启动两个nginx容器再口头启动服务命令
//假设是宝塔装置,则省略[root@iZbp18vj2il5rgv6uy66xxZ~]#[root@iZbp18vj2il5rgv6uy66xxZ~]#7启动服务命令与6.x不同哦0三、性能宿主机nginx文件模式一:命令行操作(介绍)
//假设是宝塔装置,则省略[root@iZbp18vj2il5rgv6uy66xxZ~]#[root@iZbp18vj2il5rgv6uy66xxZ~]#7启动服务命令与6.x不同哦1模式二:关上宝塔面板找到nginx治理
在http段参与以下代码
//假设是宝塔装置,则省略[root@iZbp18vj2il5rgv6uy66xxZ~]#[root@iZbp18vj2il5rgv6uy66xxZ~]#7启动服务命令与6.x不同哦2保留性能偏重启宿主机Nginx或许宝塔面板nginx治理重启服务
//假设是宝塔装置,则省略[root@iZbp18vj2il5rgv6uy66xxZ~]#[root@iZbp18vj2il5rgv6uy66xxZ~]#7启动服务命令与6.x不同哦3检查Nginx容器运转形态
注:假设是线上主机,则须要在主机和宝塔界面开启端口
主机性能端口
宝塔性能端口
五、测试
再刷新几次?
web1web2看进去了吧?
以上基于docker成功nginx负载成功!!!
13《Nginx 入门教程》Nginx负载平衡(下)
这一小节中,咱们将实战 Nginx 的四层和七层负载平衡性能。
条件有限,经常使用一台公网主机,在上方搭建好 Nginx 服务。
公网 IP 为 180.76.152.113。
首先会启动繁难的四层负载平衡试验,不会触及多种负载平衡算法,只经常使用自动的 Round-Robin算法。
在后续的七层负载平衡试验中,会重点测试不同的负载平衡战略,成功关系试验。
首先在 中减少如下 stream 指令块性能: 上述性能用端口3000和3001模拟两个抢先主机,而后在 upstream 指令块中指定这两个抢先主机的地址,同时给第一个设置权重为2。
由于自动驳回的是加权的 Round-Robin 算法,自动主机的权重为1。
设置为2,标明3次恳求中,2次会转发到3000端口,一次性会转发到3001端口,上方的测试也验证了这一点。
和四层的性能其实差不多,在七层中除了测试最基本的,咱们还将测试前面提到的几种负载平衡战略,进一步相熟 Nginx 中的负载平衡性能。
在 中减少如下的 http 指令块: 上述性能中,咱们用8000,8001和8002三个端口模拟了3个抢先主机,自动经常使用轮询负载平衡算法,而且三个的权重均为1。
启动如下的 http 恳求操作,可以看到 Nginx 转发 http 恳求会平均地调配到3个主机上。
咱们关上 ip_hash 指令的注释,这个时刻自动是经常使用客户端的 ip 地址作为 hash 的 key,而后重启 Nginx 服务并启动如下的命令行操作: 接上去,注释 ip_hash 指令,咱们关上 hash user_$arg_username 这行性能的注释, hash 指令可以让咱们依据咱们设置的 key 启动 hash,而后依据 hash 值选用抢先的主机。
详细测试参看上方的 Linux 命令: 这里咱们可以看到,在恳求中带上 username 参数,Nginx 中性能的 hash 算法会依据恳求中带的 username 参数作为 key 去启动 hash,而后在依据 hash 结果映射抢先主机。
username 相反时,选用的抢先主机必需是一样的,只要在 username 的值出现变动时,前往的照应才或许有变动。
当天咱们成功了几个测试试验,关键是针对 Nginx 的四层和七层的负载平衡性能启动了测试。
这特性能在微服务部署中会有较多的运行。
由于高流量企业为保障服务的高可用性,往往会水平裁减多个相反性能的服务,部署在多台主机上,这个时刻负载平衡技术就能派上用场了,而 Nginx 提供了完善的负载平衡性能以及多种负载平衡算法,能满足大局部企业的需求,假设还不够,可以经过编写外部开发模块并集成到 Nginx,成功相应的需求。
所以说 Nginx 是十分值得学习和深化钻研的。
Nginx的upstream性能技巧
Nginx作为经常出现的反向代理主机,其upstream性能在网站敌对台主机部署中表演着关键角色,旨在成功负载平衡和提高主机可用性。
经过深化了解upstream的性能,咱们可以更好地优化主机性能和稳固性。
基本色能语法
一个upstream性能首先须要定义称号,随后可以减少多个server,Nginx自动驳回轮询战略。例如:
upstream my_servers {server ;server ;}
关键参数
示例
上方是一个蕴含一切学习内容的示例性能:
upstream tf_servers {server max_fails=3 fail_timeout=30s;server ;backup ;}
总结
把握Nginx的upstream性能技巧关于构建高效和牢靠的主机环境至关关键。
经过调整这些参数,咱们可以优化服务负载,确保在主机缺点时能够极速复原,优化用户体验。