测试 《 Windows环境下实现Nginx+2tomcat实现负载均衡》

Redis缓存服务器(nginx+tomcat+redis+mysql)实现session会话共享 阅读详情

在项目运营时,我们都会遇到一个问题,项目需要更新时,我们可能需先暂时关闭下服务器来更新。但这可能会出现一些状况:

 

1.用户还在操作,被强迫终止了(我们可以看日志等没人操作的时候更新,但总可能会有万一)

2.不知道的用户可能会想网站是不是被攻击了,降低了对网站的信任程度,从而导致失去部分潜在客户,这点尤其对金融互联网公司不利。

 

在查了一些资料后,决定采用Tomcat + Nginx + Redis来实现负载均衡和session共享。下面记录下我的实践过程,如有错误不足之处欢迎大神指点,不喜勿喷。

 

1.Nginx简单介绍及开启

Nginx是一款轻量级兼备高性能的Http和反向代理服务器。所谓反向代理就是指在用户发起访问请求,由代理服务器接收,然后将请求转发给正式服务器,并且将正式服务器处理完的数据返回给客户端,此时代理服务器就表现为一个服务器。这么做看起来多经过了一步,稍显麻烦,但实则是好处多多,在下面的demo中我会将其体现出来。

首先我们去Nginx官网下载个Nginx,我这是在自己电脑上,所以当然下载的是windows版本的。下载完成后直接放在某个盘中即可,不需要安装。接下去我们打开cmd,进入nginx的目录下,输入start nginx。

 

 

我们可以看到一个窗口一闪而过,这样nginx就已经被开启了,我们在任务管理器中可以找到它的进程。

现在我们在浏览器中输入localhost。可以看到出现一个页面,虽然简陋了点,但这确确实实就是nginx的欢迎页面,就类似tomcat刚启动完成的locahost:8080的欢迎页面。

 

2.使用Nginx实现反向代理

现在我们搭建一个基于简单的web项目,里面只有一个JSP即可;

运行demo,我这tomcat端口是8080,在浏览器输入localhost:8080,出现我们的页面。

 

这时我们还是直接访问tomcat服务器的,现在我想通过nginx访问tomcat,即输入localhost就能显示我们demo的页面。

这就要我们去修改nginx的核心配置文件,在其目录下的conf文件夹下的nginx.conf文件,那么首先我们就要了解该文件中一些节点的作用。

  • worker_processes:工作进程个数,可配置多个

  • worker_connections:单个进程最大连接数

  • server:每一个server相当于一个代理服务器

  • lister:监听端口,默认80

  • server_name:当前服务的域名,可以有多个,用空格分隔(我们是本地所以是localhost)

  • location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里

  • index:当没有指定主页时,默认会选择这个指定的文件,可多个,空格分隔

  • proxy_pass:请求转向自定义的服务器列表

  • upstream name{ }:服务器集群名称

知道了节点作用后,我们就知道我们需要修改的文件中的server部分,这是它原有的代码,我删除了它注释部分。现在我们就能明白为什么输入localhost,

它访问的是它欢迎页面即index.html。

下面我们对这段代码进行一些小小修改。就是将请求转向我们定义的服务器。

 

 

随后在cmd中输入命令nginx -s reload即可重启nginx。

重启后,我们再输入localhost,可以看到跳转到的页面是我们demo的。

 

至此,反向代理已完成,这样所有请求都需经过代理服务器才能访问到正式服务器,某种程度上可以保护网站安全。

 

3.使用Nginx实现负载均衡

负载均衡即是代理服务器将接收的请求均衡的分发到各服务器中。

负载均衡的优势在访问量少或并发小的时候可能并不明显,且不说淘宝双11、铁道部抢票这种级别的访问量、高并发,就是一般网站的抢购活动时,也会给服务器造成很大压力,可能会造成服务器崩溃。而负载均衡可以很明显的减少甚至消除这种情况的出现,下面我们说说实现方法。

准备工作:

一台电脑上,默认是不能跑两台Tomcat的,但是修改一下Tomcat的一些端口号,可以实现一台电脑跑两个Tomcat。

具体修改的地方,参考如下:http://blog.csdn.NET/xuxiaoxie/article/details/51498222


首先我们再开启一个tomcat服务器,这里区分一下就叫tomcat2吧,原先的叫tomcat1。将tomcat1上的项目,拷贝到tomcat2上,稍微修改下页面上的文字以便等下区分我们的请求被分发到了哪个tomcat上。tomcat2端口我这里为8088。在浏览器中输入localhost:8088。



 

 

服务器准备好了,我们要在server外部定义个服务器集群,即用到了上文中提到的upstream 标签。服务器集群名字取为test。

同时我们需要再修改下server,将定向的路径转到问你服务器集群上。

 

重启下nginx,在浏览器输入localhost,再多刷新几次,可以看到两个页面在来回切换。

 

这样即实现了负债均衡。假设我们服务器在运行过程中,其中一个tomcat挂了,仍然还有另一个可以访问。更新的时候也能先关闭只其中一个,轮流更新。另外还能有效缓解服务器压力,是不是很棒呢?

当然,以上nginx的配置是简单化的,实际上我们还可以配置nginx对静态资源的缓存等等,在此就不多加演示了。

 

4.小结

花了好些时间,总算陆陆续续要写好了,在此小结一下。

nginx作为一个反向代理服务器,能缓存我们项目的静态文件,并实现反向代理与均衡负载,可以有效减少服务器压力,即使项目不大,也可以使用。

大家另外应该都还发现了个问题,虽然这样请求能分别请求到两个tomcat上,如果是一般不需身份校检的或什么认证的方法尚可,但如果出现这类情况:

我们在tomcat1上进行了登录,这时用户session当然是存在tomcat1上的,而这时进入个人中心的请求请求到tomcat2上了,这时就会出现问题了。tomcat2会告诉你还未登录,这显然不是我们想看到的。

这就涉及到session共享了,如何让两个服务器上的session共用。我这里放到下次再说,作为码农比较忙,可能要过个好几天。另外我将这次的demo源码上传了,下次还要用,nginx配置就不传了,大家自己多动手试验。

Nginx+Tomcat(多实例)实现动静分离和负载均衡(四层、七层) 反向代理即作为服务端的代理,接受客户端的请求,并根据配置转发给后端的tomcat服务器,处理完之后再通过nginx返回给客户端。nginx使用location去正则匹配用户的访问路径的前缀或者后缀,去判断接收的请求是静态的还是动态的,静态资源请求在Nginx本地进行处理响应,动态页面请求通过反向代理转发给后端应用服务器。由于Nginx服务是轻量级、高性能,处理静态页面强,但是几乎不能处理动态页面,所以需要转发给多台tomcat服务器处理动态页面请求。Nginx处理静态资源的能力是Tomcat处理的6倍。 阅读详情

相关推荐

Tomcat8(Tomcat9)+redis实现Session共享(支持Redis集群)

使用说明:请严格按照资源内的readme文档来说明部署,不要搞错版本,完美支持Tomcat8和Tomcat9等新版本Tomcat,仅支持JDK8以上版本JDK。

Tomcat【redis-session共享】

1、6、

L596462013的博客 1518

LTE随机接入实战:如何通过PRACH前导码优化小区覆盖半径(附计算公式)

本文深入探讨了LTE网络中PRACH前导码格式对小区覆盖半径的关键影响。通过解析不同前导码格式(如Format 0-3)的物理参数与覆盖能力,提供了核心计算公式与实战Python脚本,指导网络工程师根据覆盖需求、环境多径和容量等因素,科学选择前导码格式以优化边缘用户接入成功率,实现精准的网络规划与优化。

qq_27496129的博客 573

tomcat+redis实现session共享

本文基于CentO 1.从官网下载redis,tomcat安装过程

localhost 3375

【异常】解决JDK21升级中的SecurityException: JCE无法验证BC提供者问题

本文详细解析了JDK21升级中常见的SecurityException: JCE无法验证BC提供者问题的根源与解决方案。核心在于JDK21强化了JCE安全验证,导致签名不合规的老版本Bouncy Castle库被拒绝。文章提供了通过Maven依赖树精准定位、排除旧版本并引入兼容的bcprov-jdk18on新库的完整步骤,以及清理缓存等实战技巧,帮助开发者彻底解决此兼容性问题。

weixin_29197051的博客 488

FLoRA: 基于异构低秩适应的联邦微调大语言模型

大语言模型(LLMs)的快速发展推动了人工智能的进步,预训练的LLMs可以通过微调适应各种下游任务。联邦学习(FL)通过利用客户端的本地数据进行原位计算,进一步增强了隐私保护的微调,消除了数据移动的需求。然而,考虑到LLMs的巨大参数量,微调LLMs对于资源受限且异构的FL客户端来说是一个挑战。之前的方法采用了低秩适应(LoRA)进行高效的联邦微调,但在LoRA适配器上使用了传统的FL聚合策略。这些方法导致了数学上不准确的聚合噪声,降低了微调效果,并且未能解决异构LoRA的问题。

tiger00O的博客 2065

tomcat集群使用redis解决session共享问题

tomcat集群

orton777的博客 1093

Element Server Suite社区版Helm部署:私有Matrix聊天服务器快速搭建指南

在云原生和微服务架构日益普及的今天,容器化部署已成为现代应用交付的标准范式。Kubernetes作为容器编排的事实标准,通过声明式配置和自动化管理,极大地简化了复杂分布式系统的部署与运维。Helm作为Kubernetes的包管理器,通过预定义的Chart模板,将应用及其依赖打包,实现了真正的“一键部署”,显著提升了部署效率和可重复性。这种技术组合的价值在于,它让开发者能够专注于业务逻辑,而非底层基础设施的复杂性,尤其适用于需要快速搭建、易于维护的服务场景。Element Server Suite Commu

weixin_42610010的博客 299

tomcat+nginx+redis实现均衡负载、session共享(一)

在项目运营时,我们都会遇到一个问题,项目需要更新时,我们可能需先暂时关闭下服务器来更新。但这可能会出现一些状况: 1.用户还在操作,被强迫终止了(我们可以看日志等没人操作的时候更新,但总可能会有万一) 2.不知道的用户可能会想网站是不是被攻击了,降低了对网站的信任程度,从而导致失去部分潜在客户,这点尤其对金融互联网公司不利。 在查了一些资料后,决定采用Tomcat + Nginx...

weixin_30369087的博客 1015

鸿蒙开发实战项目(四十七):图片编辑(ArkTS)

本篇Codelab主要介绍如何基于图片编解码,实现图片编辑。图片的解码。使用PixelMap进行图片编辑,如裁剪、旋转、亮度、透明度、饱和度等。图片的编码。

斌擎科技 1584

【Go语言实战】(3) Gin + Gorm 简单备忘录 | 含接口文档

Go语言实战:TodoList 备忘录

面向生活编程 6139

Nginx整合Tomcat实现负载均衡

文章目录*Nginx整合Tomcat实现负载均衡*一、Windows下Nginx整合Tomcat实现负载均衡①准备两个Tomcat服务(端口号8080、端口号9090)②启动两个Tomcat服务(直接访问可以成功)③conf目录下,修改nginx.conf文件④启动Nginx服务(start nginx),开始测试二、Linux下Nginx整合Tomcat实现负载均衡①准备两个Tomcat服务(端口号8087、端口号8088)②启动两个Tomcat服务(直接访问可以成功)③conf目录下,修改nginx.c

Hello World 4255

【100%通过率】华为OD机试真题 JavaScript 实现【对称美学】【2023 Q1 | 100分】

对称就是最大的美学,现有一道关于对称字符串的美学。 已知: 第1个字符串:R 第2个字符串:BR 第3个字符串:RBBR 第4个字符串:BRRBRBBR 第5个字符串:RBBRBRRBBRRBRBBR相信你已经发现规律了,没错! 就是第i个字符串=第i-1号字符串的取反+第i-1号字符串。取反即(R->B,B->R); 现在告诉你n和k,让你求得第n个字符串的第k个字符是多少。(k的编号从0开始)

MISAYAONE的博客 9850

Windows下用Nginx+Tomcat配置集群负载均衡

Nginx是一款轻量级的web服务器/反向代理服务器,更详细的释义自己百度了。目前国内像新浪、网易等都在使用它。

俺总在笑 1万+

YOLOv12优化:原创自研 | 带有注意力机制的隐藏状态混合器的状态空间(HSM-SSD),实现暴力涨点 | CVPR2025 EfficientViM

可以将 带有注意力机制的隐藏状态混合器的状态空间(HSM-SSD)中的注意力机制换成专栏其他注意力机制 ,那么你就能实现独一无二的原创。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 664

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Nginx和Tomcat实现负载均衡

最近学习国产中间件相关知识,就回顾一下Nginx和tomcat实现负载均衡的知识。

sloven的专栏 615

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Nginx+Tomcat+Redis实现负载均衡与Session共享之四 — Nginx+Tomcat实现负载均衡

前言:       本系列文章的目的,在于记录下来本人本次实现Nginx+Tomcat+Redis实现负载均衡,tomcat集群并同时解决Session共享整个流程的攻坚细节。在这个过程中也在网上搜索了许多资料,但是发现许多资料都不完全,有许多遗漏,学习使用起来会碰到许多错误却没有解决办法。秉着一个交流学习的原则,这次我将从Java的JDK安装起到整个集群的实现,将每一个细节点都记录下来。使学习

小圣_fighting的博客 782

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

windows下使用nginx配置tomcat集群

一、nginx介绍Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。应用场景:1、http服务器。Nginx可以独立提供http服务。可以做网页静态服务器。2、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。3、反向代理,负载均衡。...

张康的博客 6347

Windows10 本机实现nginx+tomcat负载均衡

一、nginx下载及安装 nginx下载 下载后解压,直接双击nginx.exe 启动即可。 访问localhost,若出现如下界面代表成功 二、Tomcat配置 我是分别下载了7.0和8.5版本的tomcat tomcat启动的时候会去找你的CATALINA_BASE和CATALINA_HOME环境变量,在启动一个tomcat后,再启动一个发现启动不了,就是因为他们俩去找的同一个环境变量...

阳光大男孩!!!的博客 1263

Windows下nginx+tomcat实现简单的负载均衡

Windows下nginx+tomcat实现简单的负载均衡 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器...

qq_35117398的博客 131

基于Linux CentOS 7.9 部署Tomcat 以及 基于tomcat集群实现nginx负载均衡

本文介绍了Tomcat的安装与配置过程,包括JDK环境部署、Tomcat二进制安装、目录结构说明以及通过systemd服务管理Tomcat。同时对比了Resin、Jetty、JBoss等主流Java Web服务器特性,并详细解析了Tomcat的配置文件架构,包括Server、Service等核心节点功能。

2502_94124179的博客 486

Web——安装httpd服务(Tomcat)及Nginx+Tomcat负载均衡

文章摘要 Tomcat是一款由Apache软件基金会开发的开源轻量级Web应用服务器,支持Servlet和JSP规范,广泛应用于Java Web开发。本文详细介绍了Tomcat的安装与配置过程:包括环境准备(IP规划、关闭防火墙/SELinux)、软件包下载、解压安装Tomcat和JDK8、配置Java环境变量、启动Tomcat服务及验证访问。通过对比Apache、Nginx等主流Web服务器,突出了Tomcat在Java Web应用中的专用性优势。文中还提供了常见问题解决方案,如端口冲突时的修改方法,并附

一天不学,就浑身难受 1519

Windows10 本机实现nginx+tomcat负载均衡

232432432

狼魂之力 513

nginx+tomcat实现负载均衡(windows环境)

一、准备工作 nginx1.14 nginx1.14下载链接 tomcat8 tomcat8下载链接 windows系统 二、实现目标 访问http://localhost地址时, 将请求轮询到tomcat1和tomcat2服务器上, 实现负载均衡, 并通过proxy_connect_timeout 1;配置, 实现其中一台服务器宕机能快速切换到另一台服务器上面, 从而不影响使用 第一次、第...

weixin_30675967的博客 90

利用nginx在windows下搭建tomcat集群实现负载均衡

环境介绍:Win7 64位SP1 Nginx版本:nginx/1.8.0 tomact版本:apache-tomcat-7.0.6、apache-tomcat-8.0.17 jdk版本:jdk1.8 1. 下载nginx1.8.0版本: http://nginx.org/download/nginx-1.8.0.zip 2. 解压软件到对应位置(D:\develop\nginx),并...

Hello_Error 372

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

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

星星点灯的博客 1393
上一篇: 同一服务器部署多个tomcat配置
下一篇: Centos7 64位安装MySQL 5.6
Y_JY
博客等级 码龄15年 7粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Y_JY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值