发布信息

经常使用docker成功nginx负载平衡 (经常使用抖抖机好吗)

     2024-10-22 14:46:19     386

本文目录导航:

经常使用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,并创立一个空白繁难咱们性能成功后检查成果

[root@iZbp18vj2il5rgv6uy66xxZ~]#cd/www/server/nginx/html[root@iZbp18vj2il5rgv6uy66xxZ~]#[root@iZbp18vj2il5rgv6uy66xxZ~]#二、装置Nginx容器

pullnginx镜像

[root@iZbp18vj2il5rgv6uy66xxZwww]#dockerpullnginxUsingdefaulttag:latestlatest:Pullingfromlibrary//library/nginx:latest

pull成功经常使用dockerimages命令检查

[root@iZbp18vj2il5rgv6uy66xxZwww]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEnginxlatestf8f4ffc8092c7daysago133MB

dockerrun创立容器

//容器名: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_web1

exit分开后容器不运转先启动两个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负载平衡(下)

经常使用docker成功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性能技巧关于构建高效和牢靠的主机环境至关关键。

经过调整这些参数,咱们可以优化服务负载,确保在主机缺点时能够极速复原,优化用户体验。

相关内容 查看全部