首页 » Web前端 » php并发负载平衡技巧_nginx搭建简单纯真负载均衡做事

php并发负载平衡技巧_nginx搭建简单纯真负载均衡做事

duote123 2024-12-14 0

扫一扫用手机浏览

文章目录 [+]

当一台做事器的性能达到极限时,我们可以利用做事器集群来提高网站的整体性能。
那么,在做事器集群中,须要有一台做事器充当调度者的角色,用户的所有要求都会首先由它吸收,调度者再根据每台做事器的负载情形将要求分配给某一台后端做事器去处理。

那么在这个过程中,调度者如何合理分配任务,担保所有后端做事器都将性能充分发挥,从而保持做事器集群的整体性能最优,这便是负载均衡问题。

php并发负载平衡技巧_nginx搭建简单纯真负载均衡做事

基本环境

php并发负载平衡技巧_nginx搭建简单纯真负载均衡做事
(图片来自网络侵删)

三台centos虚拟机(windows也可以),都搭建好了nginx环境。
当然也可以利用docker映射三个不同端口的nginx容器进行。
centos利用docker搭建nginx环境方法:《利用docker快速搭建nginx+php环境》

三台主机分别是:

192.168.73.128 主

192.168.73.130

192.168.73.131

首先我们解析个域名codehui.net到主理事器192.168.73.128上

192.168.73.128 codehui.net

步骤

主理事器配置

编辑nginx配置文件

vi /etc/nginx/nginx.conf

在http节点中加入下面配置,负载均衡的几种常用办法请查看文尾。

# 负载均衡做事器列表 upstream codehui.net { server 192.168.73.130:80; server 192.168.73.131:80; } # 监听80端口的访问 server{ listen 80; server_name codehui.net; location / { proxy_pass http://codehui.net; } }

其他两台做事器配置

我们分别在两台做事器上新建个入口文件,作为区分

echo \公众<?php echo \公众我是一号做事器:192.168.73.130\公众;\公众 > index.php

echo \"大众<?php echo \"大众我是二号做事器:192.168.73.131\"大众;\公众 > index.php

如果要配置其他功能,可以在nginx.conf中加入如下方法

server{ listen 80; server_name codehui.net; root /usr/share/nginx/www; location / { index index.php index.html; }}

把稳重启nginx做事

service nginx reload

测试

可以看到两次要求分发到了不同做事器

代码汇

代码汇

负载均衡的几种常用办法

1、 轮询(默认)

每个要求按韶光顺序逐一分配到不同的后端做事器,如果后端做事器down掉,能自动剔除。

upstream nginx_server { server server1; server server1;}

2、weight

指定轮询几率,weight和访问比率成正比,用于后端做事器性能不均的情形。

upstream nginx_server { server server1 weight=4; server server2 weight=6;}

权重越高,在被访问的概率越大,如上例,分别是40%,60%。

3、 ip_hash

上述办法存在一个问题便是说,在负载均衡系统中,如果用户在某台做事器上登录了,那么该用户第二次要求的时候,由于我们是负载均衡系统,每次要求都会重新定位到做事器集群中的某一个,那么已经登录某一个做事器的用户再重新定位到另一个做事器,其登录信息将会丢失,这样显然是欠妥的。

我们可以采取ip_hash指令办理这个问题,如果客户已经访问了某个做事器,当用户再次访问时,会将该要求通过哈希算法,自动定位到该做事器。

每个要求按访问ip的hash结果分配,这样每个访客固定访问一个后端做事器,可以办理session的问题。

upstream nginx_server { ip_hash; server server1; server server2;}

4、 fair (第三方)

upstream nginx_server { server server1; server server2; fair;}

5、url_hash (第三方)

按访问url的hash结果来分配要求,使每个url定向到同一个后端做事器,后端做事器为缓存时比较有效。

upstream backserver { server squid1:3128; server squid2:3128; hash $request_uri; hash_method crc32;}

每个设备的状态设置为:

down 表示单前的server暂时不参与负载weight 默认为1.weight越大,负载的权重就越大max_fails:许可要求失落败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的缺点fail_timeout : max_fails次失落败后,停息的韶光backup: 其它所有的非backup机器down或者忙的时候,要求backup机器。
以是这台机器压力会最轻。
配置实例:

#user nobody;worker_processes 4;events { # 最大并发数 worker_connections 1024;}http{ # 待选做事器列表 upstream myproject{ # ip_hash指令,将同一用户引入同一做事器。
ip_hash; server 125.219.42.4 fail_timeout=60s; server 172.31.2.183; } server{ # 监听端口 listen 80; # 根目录下 location / { # 选择哪个做事器列表 proxy_pass http://myproject; } }}

作者:代码汇

链接:https://www.jianshu.com/p/445e42429d62

标签:

相关文章

大数据时代,罗峰如何引领智慧生活新潮流

随着互联网技术的飞速发展,大数据已成为现代社会的重要驱动力。在我国,大数据产业呈现出蓬勃发展的态势,众多企业纷纷投身其中,探索大数...

Web前端 2024-12-15 阅读0 评论0

大数据时代,磁盘存储的变革与创新

随着信息技术的飞速发展,大数据已经成为国家战略资源,对经济社会发展具有重大影响。而磁盘作为数据存储的核心载体,在大数据时代面临着前...

Web前端 2024-12-15 阅读0 评论0

大数据时代,起薪飙升背后的机遇与挑战

随着互联网、物联网、人工智能等技术的快速发展,大数据已成为我国产业转型升级的关键驱动力。在这样一个充满机遇与挑战的时代,大数据人才...

Web前端 2024-12-15 阅读0 评论0

大数据易理,新时代的智慧之光

随着信息技术的飞速发展,大数据时代已经到来。大数据以其海量、快速、多样等特点,深刻地改变着我们的生活方式、思维方式乃至社会运行模式...

Web前端 2024-12-15 阅读0 评论0

大数据时代,黄勇的探索与创新

在当今这个信息化、数字化迅速发展的时代,大数据已经成为推动社会进步的重要力量。而在这个领域中,我国学者黄勇以其卓越的研究成果和独特...

Web前端 2024-12-15 阅读0 评论0