nginx-16 负载均衡

nginx-1.16.1官方版.rar nginx1.16.1版本,64位,你可以下这个,也可以去官网下载! 立即下载

开放端口和安装swoole

负载均衡配置并不难,学习的困难在于有的小伙伴没有那么多服务器,这里用swoole创建http服务来代替,所以有一台自己的服务器就可以了。

这里用9502和9503端口来创建两个http服务。

需要注意的地方,云服务器开通这些端口的入站和出站规则(入站和出站规则相应的端口都要打开)。

云服务器怎么开放端口见
云服务器端口和防火墙端口配置

Swoole的安装见
swoole编译安装

创建两个Http服务

这里开启了两个服务 9502和9503 格式为
http_9502.php

<?php
$http = new swoole\http\server('0.0.0.0',9502);
$http->on('request',function($request,$response){
    $response->end('<h1>9502:'.date('Y-m-d H:i:s').'</h1>');
});
$http->start();

http_9503.php
同上,换下端口

打开两个CMD窗口分别执行这两个文件 php http_9502.php php http_9503.php 这样两个http服务器就创建完成了

nginx配置

打开Nginx文档 https://tengine.taobao.org/nginx_docs/cn/docs/
搜索upstream
在这里插入图片描述
已经给出了配置的例子
在这里插入图片描述
按照文档的例子配置即可,注意upstream的上下文是http ,上下文的意思是这条指令只能写在nginx.conf中的http块中
在这里插入图片描述

http{
      	...
        #负载均衡
        upstream backend {
            server xx.xxx.xx.xx:9502;
            server xx.xxx.xx.xx:9503;
        }
		server {
      			listen 80;
    			server_name xx.xxx.xx.xx;
   				 index index.php index.html index.htm default.php default.htm default.html;
   			 	root /www/wwwroot/default;

   			 	location /up {
        			proxy_pass http://backend;
    			}
    	}
	include /www/server/panel/vhost/nginx/*.conf;
}

测试

访问http://xx.xxx.xx.xx/up
在这里插入图片描述
刷新
在这里插入图片描述
观察到9502和9503不断交替轮询,简单的负载均衡就实现了。

其他

自行按照文档配置学习即可
加权轮询:

upstream backend {
            server xx.xxx.xx.xx:9502 weight=2; #20%
            server xx.xxx.xx.xx:9503 weight=8; #80% 配置相对好的服务器
        }

ip_hash:
如果按照加权轮询的话会有一个问题,如用户在服务器A登陆,保存会话session到A服务器,但轮询的方式,刷新网页后,导致B上没有该用户的会话,又提示登陆。ip_hash解决这个问题。但最好的办法是session入库,让A、B都能访问。
ip_hash根据客户端的ip 哈希取余分配服务器,只要客户端的ip不变,并且服务器的数量不发生改变,就可以黏住该客户端总是访问同一服务器。
如果选择了ip_hash,那么权重就失去了一定的意义。

upstream backend {
			ip_hash;
            server xx.xxx.xx.xx:9502; 
            server xx.xxx.xx.xx:9503; 
            server xx.xxx.xx.xx:9504;
        }

ip_hash依赖于服务器的数量不发生改变,所以当需要移除一个服务器时,不能直接将代码删除,而需要在服务器后添加down参数标记服务器不可用。

upstream backend {
			ip_hash;
            server xx.xxx.xx.xx:9502; 
            server xx.xxx.xx.xx:9503; 
             server xx.xxx.xx.xx:9504 down;  
        }

least_conn:
客户端的每一次请求服务在服务器停留的时间可能会有较大的差异,随着工作时间加长,如果采用简单的轮循或随机均衡算法,每一台服务器上的连接进程可能会产生极大的不同,并没有达到真正的负载均衡。最少连接数均衡算法对内部中需负载的每一台服务器都有一个数据记录,记录当前该服务器正在处理的连接数量,当有新的服务连接请求时,将把当前请求分配给连接数最少的服务器,使均衡更加符合实际情况,负载更加均衡。

upstream backend {
			least_conn;
            server xx.xxx.xx.xx:9502 weight=2; 
            server xx.xxx.xx.xx:9503; 
        }

失败重试:
避免重复请求暂时不能访问的服务,增大服务器的压力,当服务器可用时再次访问。
max_fails=3 fail_timeout=30s 这2个一起搭配使用,表示:当在30秒内失败3次的时候,那么就认为这个上游服务器不可用,30s内将不会访问这台上游服务器,超过30秒后将再次重试这个服务器

upstream backend {
            server xx.xxx.xx.xx:9502 weight=2; 
            server xx.xxx.xx.xx:9503 max_fails=3 fail_timeout=30s; 
        }

失败或超时切换到下一台服务器:

http{
      	...
        #负载均衡
        upstream backend {
            server xx.xxx.xx.xx:9502;
            server xx.xxx.xx.xx:9503;
        }
		server {
      			listen 80;
    			server_name xx.xxx.xx.xx;
   				 index index.php index.html index.htm default.php default.htm default.html;
   			 	root /www/wwwroot/default;

   			 	location /up {
   			 		proxy_next_upstream timeout; #切换下台服务器的规则是超时
   			 		proxy_connect_timeout 3;#链接超时3秒
   			 		proxy_send_timeout 3;# 请求超时3秒
   			 		proxy_read_timeout 3;#响应超时3秒
   			 		#默认不限制重试次数,最好不能无限制的重试
   			 		proxy_next_upstream_tries 3;
   			 		proxy_next_upstream_timeout 3;
   			 		#注意,这个是上游服务器切换层面上的失败重试,与上面的失败重试有所不同。proxy_next_upstream_timeout时间内允许proxy_next_upstream_tries次重试
        			proxy_pass http://backend;
    			}
    	}
	include /www/server/panel/vhost/nginx/*.conf;
}

故障转移:
backup 备胎服务器

upstream backend {
            server xx.xxx.xx.xx:9502;
            server xx.xxx.xx.xx:9503 backup;
        }
nginx_1.16.1-1_xenial_amd64.deb (ubuntu16.0.4) 1.安装Nginx sudo dpkg -i nginx_1.16.1-1_xenial_amd64 A、前端包放在路径/usr/share/nginx/html/ B、修改配置文件/etc/nginx/conf.d/default.conf 2.启动Nginx服务 sudo /etc/init.d/nginx start 3.优雅停止Nginx服务 sudo /etc/init.d/nginx quit 4.加载最新配置 sudo /etc/init.d/nginx reload 5.立即停止Nginx服务 sudo /etc/init.d/nginx stop 感谢卢林威 立即下载

相关推荐

FreeModbus从入门到实战:手把手教你用STM32实现工业级Modbus RTU通信

本文详细介绍了如何使用STM32和FreeModbus实现工业级Modbus RTU通信,涵盖硬件搭建、协议栈移植及优化技巧。重点解析了FreeModbus的移植过程,包括串口驱动适配、定时器配置和工业级稳定性优化,为开发者提供了一套完整的工业通信解决方案。

weixin_33737774的博客 348

Nginx负载均衡配置、限流配置、Https配置详解

通过proxy_pass 可以把请求代理至后端服务,但是为了实现更高的负载及性能, 我们的后端服务通常是多个, 这个是时候可以通过upstream 模块实现负载均衡。

a410974689的博客 6559

从零到一:基于Blazor和Elsa Workflows的工作流系统开发实战

本文详细介绍了如何利用Blazor和Elsa Workflows构建高效的工作流系统,从技术选型到生产环境部署,涵盖动态工作流建模、Blazor前端集成及性能优化等核心内容。通过实战案例,展示如何实现订单处理系统的自动化与灵活性,提升企业流程效率。

weixin_26875109的博客 428

负载均衡,你该如何配置?

什么是负载均衡 在计算机的世界,这就是大家耳熟能详的负载均衡(load balancing),所谓负载均衡,就是说如果一组计算机节点(或者一组进程)提供相同的(同质的)服务,那么对服务的请求就应该均匀的分摊到这些节点上。 这里的服务是广义的,可以是简单的计算,也可能是数据的读取或者存储。负载均衡也不是新事物,这种思想在多核CPU时代就有了,只不过在分布式系统中,负载均衡更是无处不在,这是分布式系统的天然特性决定的,分布式就是利用大量计算机节点完成单个计算机无法完成的计算、存储服务,既然有大量计算机节点,那么

daifeng的博客 4567

SRS(简单实时视频服务) 笔记(5)- 视频录制

在SRS使用中实现视频录制功能。

irainsa的博客 1698

摩尔线程GPU实战:5分钟搞定AI模型部署(含Docker避坑指南)

本文详细介绍了摩尔线程GPU在AI模型部署中的实战应用,包括环境配置、Docker避坑指南及性能优化技巧。通过5分钟快速部署指南,帮助开发者高效利用摩尔线程GPU进行AI模型推理,特别针对常见兼容性问题提供解决方案,显著提升部署效率。

weixin_28736335的博客 453

swoole运行的时候提示端口被占用问题

1. 当你运行swoole的时候,发现端口被占用,可检查websocket是否设置了守护进程。 2. 你可以查看(netstat -anp | grep 9503)这个端口号的pid(我的代码监听的端口是9503),得到PID 3. 杀死该进程 4. 你在运行一下swoole,就可以了 ...

wangtianyou343的博客 1433

EtherCAT ROS2 入门教程(一)

本文介绍了EtherCAT驱动与ROS2的集成方案,主要包括三部分内容:1)在Ubuntu 22.04上安装IgH EtherCAT主站的详细步骤,包括内核配置、源码编译和网络适配器设置;2)构建ethercat_driver_ros2,通过ros2_control描述文件配置硬件接口和EtherCAT从站模块插件;3)使用方法,包括启动EtherCAT主站和运行配置包。该方案支持通过参数文件定义硬件接口,并提供通用和专用两种EtherCAT模块插件,便于开发基于EtherCAT的工业应用。

机器人控制与仿真应用 1528

Linux 查看端口号

lsof   -i:9503查看端口号的使用情况。(LISTEN) 监听中,说明在运行。

奔跑吧笨笨的博客 9876

iOS应用突然无法从App Store获取到内购(IAP)产品列表的解决

问题现象 Apple开发中,在应用中嵌入内购(IAP)功能的小伙伴们可能会发现,吃着火锅唱着歌,突然App就无法获取到产品列表了,而且产品请求操作并不会返回任何错误。 此时检查发现,并没有对App的内购逻辑做任何改动。 那么,这是什么原因导致的呢? Let’s find out!???? 问题分析 1. 排除其它原因 首先,你先得排除不是你IAP内购逻辑变更或其他原因导致的。 在SKProductsRequestDelegat代理实现的productsRequest方法里下断点: func produc

享受开发,颠倒银河 6141

一根同轴线,真的扛得住 4K 吗? ——从摄像头带宽算起,聊透车载 SerDes 接口选型

如果你记住这三句话,这篇文章就值了:🎯摄像头带宽 = 分辨率 × 位深 × fps × 开销4K RAW 摄像头 ≈ 3.7Gbps,是现实不是理论SerDes 选型,宁可多留 20%,不要刚刚好。

weixin_43199439的博客 192

负载均衡-Ribbon-Openfeign

  想想,什么叫负载均衡,就是把大量请求分散均衡的放在各个节点,不会让单个节点负载太大而崩掉。 Ribbon 方法一:硬编码分发端口实现负载均衡   在controller处,实现两个端口的轮询转发,通过奇偶数的规律,给两个端口依次分发,但是这样不好的是,端口定死了,如果后台节点宕机,那么程序就执行不了,数据就会访问失败 。 @RestController public class ...

qq_44349459的博客 766

基于matlab实现的水果识别系统设计

本项目针对多种常见水果混合的图像,利用 Matlab 软件,对水果的识别进行研究。根据水果和背景的差别选取阈值,对去噪增强对比度后的图像进行二值化处理。再对图像进行边缘检测,选定连通区域,标记后再对不同种水果的颜色,形状,大小等特征进行快速识别水果,从而实现对水果的正确分拣。:水果识别、MATLAB、数字图像处理。

热情、奔放、快乐编程! 4854

【16】Nginx实现负载均衡

1.安装Nginx 地址:http://nginx.org/en/download.html 下载最新Nginx后解压   2.iis中添加n个负载均衡服务(本例为2个) 分别为http://localhost:8080/test、http://localhost:8082/test 并添加test.html页面到两个服务器文件的根目录   3.配置nginx配置文件 ~\n...

chen_peng7的博客 284

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

linux安装nginx-1.16.1、nginx进行站点负载均衡、nginx配合mysql进行负载均衡

1、安装gcc 2、先查看系统有没有已经安装了gcc,查看命令:gcc -v 3、一般阿里云的centOS7里面是都有的,没有安装的话会提示命令找不到 安装命令:yum -y install gcc 4、pcre、pcre-devel安装 pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。 安装命令:yum install -y pcre pcre-devel 5、Zlib安装 zlib库提供了很多种...

Dust的博客 662

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

10.16nginx负载均衡

nginx当中有两种代理方式:七层代理(http协议)四层代理(基于tcp或udp的流量转发) 客户端请求代理服务器,由代理服务器转发客户端的httpd请求。转发到内部的服务器(可以是单台,也可以是一组)。 后端的webserver,再把响应送达代理服务器,最后再到客户端。反向代理:客户端访问的是代理服务器,代理服务器转发http请求,但是客户端不知道访问的是哪一台服务器。正向代理:客户端也是访问代理服务器,代理服务器转发造求,客户端只代理服务器的地址,后端的webserver的ip地址,客户端也不知道

wlfsa的博客 363

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

《Nginx核心技术》第16章:实现Nginx的高可用负载均衡

用最简短的篇幅介绍Nginx最核心的知识,掌握实现Nginx的高可用负载均衡方法,并能够灵活运用到实际项目中,维护高可用系统。

冰河的专栏 2776

Ubuntu 16.04 Nginx+keepalived 负载均衡

机器IP hostname IP 备注 Master 192.168.1.10 Nginx主机 任务分发 Backup 192.168.1.11 Nginx 备机 node1 192.168.1.12 任务处理1 node2 192.168.1.13 任务处理2 操作系统以及软件版本 OS Ubuntu 16.04 LTS Nginx 1.10.3 Kee...

u014221090的专栏 973

16-Nginx负载均衡策略详解

负载均衡 轮询 默认的负载均衡策略, 常用于多台服务器,资源配置一样的情况, 这样可以把流量均匀的分配到每台服务器 加权轮询 一把来说, 可能第一次部署的服务器配置都是一样的, 但是到了后期, 业务快速拓展, 就需要增加服务器, 并且购买的也是性能更高的服务器, 这个时候轮询,策略就不太好了, 这个时候就需要用到加权轮询了 upstream tomcats { # 默认weight=1 ...

彼岸舞的博客 310

16 nginx实现负载均衡

一:nginx实现负载均衡-----------------原理--------------------------  (1) 反向代理后端如果有多台服务器,自然可形成负载均衡,但proxy_pass如何指向多台服务器?   答:把多台服务器用 upstream指定绑定在一起并起个组名,然后proxy_pass指向该组  (2)默认的均衡的算法很简单,就是针对后端服务器的顺序,逐个请求....

weixin_34187822的博客 89

Nginx 笔记与总结(16)nginx 负载均衡

nginx 反向代理时,如果后端有多台服务器,就可以实现负载均衡。 实现原理:把多台服务器用 upstream 绑定在一起并起一个组名,然后 proxy_pass 指向该组。 ngx_http_upstream_module 官方文档地址:http://nginx.org/en/docs/http/ngx_http_upstream_module.html upstream 的上下文是 ht...

weixin_34192993的博客 107

ubuntu16.04 配置 nginx 简单负载均衡

主机:192.168.0.118 负载机1:192.168.0.117 负载机2:192.168.0.105 第一步:编辑主机hosts文件,配置域名 vi /etc/hosts 127.0.0.1 www.nginx.local.com 第二步:编辑主机nginx配置文件,在http段加入如下代码 vi /etc/nginx/nginx.conf htt...

Marhal的博客 664

【Ubuntu16.04】nginx+nodejs负载均衡

先记下几条笔记,有空再整理。打算这样安排,i7有8个核,拿0号核来做负载均衡,1-7号核开7个进程并把它们固定住,postman发来大量的请求,nginx将请求分配到剩余的7个核中,观察每个核的表现。(emmmm,这算不算一个集群啊)1.查看CPU每个核的使用情况,terminal下,输入top,然后输入数字1,就能查看CPU的使用情况$top2.将某个进程固定在指定的核上面$taskset -pc

DZT2727的博客 783

8.16 nginx负载均衡、SSL原理、生成SSL密钥对、nginx配置SSL

1、nginx负载均衡   执行yum install -y bind-utils安装dig命令,通过dig qq.com可以查看到返回两个IP地址   创建配置文件vim /usr/local/nginx/conf/vhost/load.conf,并增加如下配置: upstream qq_com {   ip_hash;    //确保同一用户始终保持在同一服务器上 ...

diaofuqi8207的博客 219
上一篇: 云服务器端口和防火墙端口配置
下一篇: CentOS docker简易安装
yt_php
博客等级 码龄9年 73粉丝 133原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值