win10使用nginx做简单负载均衡测试

一、首先安装Nginx:

官网链接:https://nginx.org/en/download.html
下载完成后,在本地文件中解压。
解压完成之后,打开conf --> nginx.config 文件

1、在 http 里面加入以下代码
upstream GY{#Nginx是如何实现负载均衡的,Nginx的upstream目前支持以下几种方式的分配#1、轮询(默认)#每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。#2、weight#指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。#3、ip_hash#每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。#4、fair(第三方)#按后端服务器的响应时间来分配请求,响应时间短的优先分配。#5、url_hash(第三方)#按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。  ip_hash;#weigth参数表示权值,权值越高被分配到的几率越大server 127.0.0.1:8088 weight=2;server 127.0.0.1:8089  weight=1;}

解释说明:

  • 其中 upstream 为固定单词,用于定义后端服务器组,后面紧跟的 GY自定义 (它叫做 服务器组名称
  • 127.0.0.1:8088 / 127.0.0.1:8089 这个代表服务启动的端口号,这个服务可以自己写js文件,也可以安装两个tomcat服务启动(两者选其一)。至于怎么启动,下面会有说明。
2、在 server 里面修改为下面代码
listen  888;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {# root   html;# index  index.html index.htm;proxy_pass http://GY;}

**解释说明: **

  • 这里把之前nginx默认的 端口号 80改为 888,以防止80端口占用,把原来默认的页面注释掉,增加了服务代理,这样直观看到调用了哪一个server。
  • 这里 proxy_pass 的值 和上面的 upstream后面的要保持一致。

二、配置以及启动服务(这两个选一个,否则会端口冲突,如果都要试试,端口号记得避开)

1、使用简单的js文件启动(前提要安装 node.js)

在任意目录下新建两个文件命名为 webserver1.jswebserver2.js。代码如下:

webserver1.js:

var http = require('http');
var server = http.createServer(function(req,res){res.write("Hello world from Serve One.");res.end();
});
server.listen(8088);
console.log("running at http://127.0.0.1:8088");

webserver2.js:

var http = require('http');
var server = http.createServer(function(req,res){res.write("Hello world from Server Two.");res.end();
});
server.listen(8089);
console.log("running at http://127.0.0.1:8089");

保存后,分别在相应的目录下输入 cmd ,然后输入 node webserver1.jsnode webserver2.js,来启动两个服务。可以在终端控制器中查看打印的内容。

2、使用tomcat

2.1 下载

首先下载tomcat:https://tomcat.apache.org/download-90.cgi(官网比较慢)。 注意: 这里要下载两遍,最好下载不同的两个版本,用来区分两个服务
我下载了一个9.0.105版本和10.1.41版本。
apache-tomcat-9.0.105-windows-x64.zip
apache-tomcat-10.1.41-windows-x64.zip
下载完成之后解压,下一步需要配置环境变量。

2.2 配置环境变量

在这里插入图片描述
同时配置两个环境变量:
CATALINA_HOME :自己电脑里9.0.105 的根目录
CATALINA2_HOME:自己电脑里10.1.41 的根目录
在这里插入图片描述
同时,在 Path 中添加下面两项。
在这里插入图片描述
**环境变量配置好后,分别打开两个目录下的conf --> tomcat-users.xml,**最后一行上面加上下面代码:

2.3 修改文件

<!-- 定义角色 -->
<role rolename="manager-gui"/>
<role rolename="manager-script"/><!-- 定义用户及其角色 -->
<user username="tomcat" password="123456" roles="manager-gui,manager-script"/>

在这里插入图片描述
分别打开两个文件的 server.xml:保证两个端口号不同

1、修改 port

在这里插入图片描述

2、修改connector

在这里插入图片描述
下面9.0.105 文件不动,修改 10.1.41文件!!

将下列圈中的文件,分别用编辑器打开,然后将里面的CATALINA_HOME替换为CATALINA2_HOME,将CATALINA_BASE替换为CATALINA2_BASE

文件里如果没有CATALINA_BASE字段,则只替换CATALINA_HOME即可;
在这里插入图片描述
替换完成后,将该文件下的startup.bat,shutdown.bat,version.bat文件名重命名为startup2.bat,shutdown2.bat,version2.bat。(上图是已经替换后的名称)

2.4 启动服务

在9.0.105下的 bin输入startup.bat启动tomcat9.0.105
在这里插入图片描述

新打开一个CMD窗口,在10.1.41输入startup2.bat启动服务,页面同上。
在这里插入图片描述

启动成功后就可以在浏览器中输入:
http://localhost:8088/
在这里插入图片描述http://localhost:8089/
在这里插入图片描述

三、最后启动 nginx

也可以在tomcat后安装nginx,安装解压修改后双击 nginx.exe,页面会一闪而过,然后关闭,表示启动成功。
在这里插入图片描述
也可以打开 cmd 启动,启动后,若修改了config文件,需要输入 nginx -s reload 重启。
所有的配置完成后,在浏览器中输入 http://localhost:888/ 多刷新几遍,查看页面是否有变化,除此之外,还可以在nginx中配置更多的选项,使得分配的机制更适应于你的项目和服务器。

四、扩展

上述tomcat默认打开的是该页面:
在这里插入图片描述
如果想要额外配置自定义页面,则
分别(两个目录都要配一样的文件名) 在 tomcat 目录下的 webapps下新增一个文件,将 ROOT 下的
WEB-INF复制。
在这里插入图片描述
在这里插入图片描述
两个index.html 里面只有一行
在这里插入图片描述
然后就可以在刚才地址后面加上自定义的文件名就可以访问两个文件。
在这里插入图片描述

在这里插入图片描述
到这里一个简单的负载测试已完成,也可以在这个基础上增加额外的配置来测试。

【参考文章】
配置两个tomcat:
https://blog.csdn.net/zouguo1211/article/details/83997231
基于Nginx的负载均衡实验,验证不同负载均衡策略:https://blog.csdn.net/OMio__/article/details/122539389
Nginx负载均衡原理及配置实例:
https://www.cnblogs.com/qinlulu/p/12821289.html
如何在Tomcat上部署自己的静态web页面:
https://blog.csdn.net/Versionssf/article/details/116210978

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/80721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[特殊字符]车牌识别相机,到底用在哪?

停车场管理&#xff0c;快速通行不是梦 停车场大概是车牌识别相机最常见的 “工作岗位” 啦&#xff01;以前进出停车场&#xff0c;取卡、刷卡、人工收费&#xff0c;一系列操作下来&#xff0c;高峰期的时候真的能把人等得不耐烦&#x1f62b; 现在有了车牌识别相机&#xff…

nosqlbooster pojie NoSQLBooster for MongoDB

测过可用&#xff0c;注意 asar的安装使用报错改用 npx asar extract app.asar app 路径 C:\Users{computerName}\AppData\Local\Programs\nosqlbooster4mongo\resources npm install asar -g asar extract app.asar app 打开shared\lmCore.js 修改MAX_TRIAL_DAYS3000 修改…

组态王通过开疆智能profinet转ModbusTCP网关连接西门子PLC配置案例

本案例是组态王通过使用开疆智能研发的Profinet转ModbusTCP网关采集西门子1200PLC中数据的案例。 网关配置 首先来配置网关的参数&#xff0c;打开网关配置软件“Gateway Configuration Studio” 由于组态王那侧设定为ModbusTCP客户端所以网关作为ModbusTCP服务器。新建项目…

大模型服务如何实现高并发与低延迟

写在前面 大型语言模型(LLM)正以前所未有的速度渗透到各行各业,从智能客服、内容创作到代码生成、企业知识库,其应用场景日益丰富。然而,将这些强大的 AI 能力转化为稳定、高效、可大规模应用的服务,却面临着巨大的挑战,其中高并发处理能力和低响应延迟是衡量服务质量的…

k8s监控方案实践补充(二):使用kube-state-metrics获取资源状态指标

k8s监控方案实践补充&#xff08;二&#xff09;&#xff1a;使用kube-state-metrics获取资源状态指标 文章目录 k8s监控方案实践补充&#xff08;二&#xff09;&#xff1a;使用kube-state-metrics获取资源状态指标一、Metrics Server简介二、kube-state-metrics实战部署1. 创…

Manus 全面开放注册,OpenAI 发布 Codex,ChatGPT 上线 GPT-4.1!| AI Weekly 5.12-18

&#x1f4e2;本周 AI 快讯 | 1 分钟速览&#x1f680; 1️⃣ &#x1f4dd; Manus 全面开放注册 &#xff1a;无需邀请码即可注册&#xff0c;新用户免费获得 1000 积分&#xff0c;每日 300 积分免费任务。 2️⃣ &#x1f50d; 阿里 Qwen 推出「深入研究」 &#xff1a;Qw…

代理(主要是动态)和SpringAOP

代理 静态代理基于继承实现动态代理是基于接口实现 业务层每次实现转账都需要执行&#xff0c;可以把他们拿出来当成一个切面&#xff0c;自己写出一个代理类&#xff0c;让业务层只执行业务的逻辑&#xff0c;重复的代码代理类来完成&#xff0c;然后调用代理类来执行。 代理类…

uniapp打包H5,输入网址空白情况

由于客户预算有限&#xff0c;最近写了两个uniapp打包成H5的案例&#xff0c;总结下面注意事项 1. 发行–网站-PCWeb或手机H5按钮&#xff0c;输入名称&#xff0c;网址 点击【发行】&#xff0c;生成文件 把这个给后端&#xff0c;就可以了 为什么空白呢 最重要一点&#xf…

uniapp-商城-63-后台 商品列表(分类展示商品的删除)

商品列表中的数据需要进行状态管理&#xff0c;如上架、下架、删除和修改等操作。对于存在错误或后期需要重新上传的商品&#xff0c;可以通过删除操作进行处理。 具体到商品删除功能的实现&#xff0c;其基本流程如下&#xff1a;用户在前端页面点击删除按钮后&#xff0c;系统…

学习设计模式《十》——代理模式

一、基础概念 代理模式的本质【控制对象访问】&#xff1b; 代理模式的定义&#xff1a;为其他对象提供一种代理以控制对这个对象的访问&#xff1b; 代理模式的功能&#xff1a;代理模式是通过创建一个代理对象&#xff0c;用这个代理对象去代表真实的对象&#xff1b;客户端得…

阿里云web端直播(前端部分)

阿里云&#xff1a;Web播放器快速接入_视频点播(VOD)-阿里云帮助中心 import Aliplayer from aliyun-aliplayerimport aliyun-aliplayer/build/skins/default/aliplayer-min.css<div id"J_prismPlayer" style"width: 300px; height: 300px;" />var …

深入解析OrientDB:多模型数据库的技术优势与实际应用

OrientDB 是一款开源的多模型 NoSQL 数据库&#xff0c;融合了文档数据库、图数据库和对象数据库的特性。它不仅支持灵活的数据建模&#xff0c;还提供了高性能的查询能力&#xff0c;适用于社交网络、物联网、内容管理等场景。本文详细探讨 OrientDB 的核心特性、应用场景&…

STM32控制电机

初始化时钟&#xff1a;在 STM32 的程序中&#xff0c;初始化系统时钟&#xff0c;一般会使用 RCC&#xff08;Reset and Clock Control&#xff09;相关函数来配置时钟。例如&#xff0c;对于 STM32F103 系列&#xff0c;可能会使用 RCC_APB2PeriphClockCmd 函数来使能 GPIO 和…

(05)数字化转型之生产制造:从通常的离散制造到柔性化生产的全景指南

当今制造业正经历着前所未有的数字化变革&#xff0c;从传统的离散制造到流程制造&#xff0c;再到新兴的项目制造和柔性制造&#xff0c;各种生产模式都在加速向智能化方向演进。本文将系统性地介绍制造业生产管理的完整体系&#xff0c;为企业数字化转型提供全面的方法论和实…

龙虎榜——20250520

上证指数今天缩量向上&#xff0c;个股涨多跌少&#xff0c;大盘股和小盘股总体表现都还可以。 深证同样缩量上涨&#xff0c;向上补缺口的概率增大。 2025年5月20日龙虎榜行业方向分析 宠物经济&#xff08;消费升级政策催化&#xff09; • 代表标的&#xff1a;天元宠物、…

CVE-2022-22978源码分析与漏洞复现

漏洞概述 CVE-2022-22978 是 Spring Security 框架中的一个高危认证绕过漏洞&#xff0c;影响版本包括 Spring Security 5.5.x < 5.5.7、5.6.x < 5.6.4 及更早的不受支持版本。攻击者可通过构造包含换行符&#xff08;如 %0a&#xff09;的 URL 路径&#xff0c;绕过正则…

PostGIS实现栅格数据入库【raster2pgsql】

raster2pgsql使用与最佳实践 一、工具概述 raster2pgsql是PostGIS提供的命令行工具,用于将GDAL支持的栅格格式(如GeoTIFF、JPEG、PNG等)导入PostgreSQL数据库,支持批量加载、分块切片、创建空间索引及金字塔概览,是栅格数据入库的核心工具。 二、核心功能与典型用法 1…

Redis企业级开发实战:核心应用场景与最佳实践

引言 Redis&#xff08;Remote Dictionary Server&#xff09;作为一款高性能的内存数据库&#xff0c;在企业级开发中扮演着至关重要的角色。无论是缓存加速、分布式锁、实时统计&#xff0c;还是消息队列&#xff0c;Redis都能以极低的延迟和极高的吞吐量满足业务需求。本文…

深入解析Spring Boot与Spring Cloud在微服务架构中的实践

深入解析Spring Boot与Spring Cloud在微服务架构中的实践 引言 随着云计算和分布式系统的快速发展&#xff0c;微服务架构已成为现代软件开发的主流模式。Spring Boot和Spring Cloud作为Java生态中微服务开发的核心框架&#xff0c;为开发者提供了强大的工具和组件&#xff0…

AI量化交易是什么?它是如何重塑金融世界的?

第一章&#xff1a;证券交易的进化之路 1.1 从喊价到代码&#xff1a;交易方式的革命性转变 在电子交易普及之前&#xff0c;证券交易依赖于交易所内的公开喊价系统。交易员通过手势、喊话甚至身体语言传递买卖信息&#xff0c;这种模式虽然直观&#xff0c;但效率低下且容易…