Nginx+Tomcat群集

news2024/11/16 3:34:00

**Nginx + Tomcat 集群**

Nginx 和 Tomcat 集群的组合是一种常见且强大的架构方案,旨在实现高可用性、可扩展性和高性能的 Web 应用服务。

Nginx 是一款轻量级的高性能 Web 服务器和反向代理服务器。它能够高效地处理静态资源请求,并将动态请求转发到后端的 Tomcat 服务器。其优点包括:
-- 出色的并发处理能力,能够同时处理大量的连接请求。
-- 低资源消耗,在硬件资源有限的情况下仍能保持良好性能。

Tomcat 则是一个流行的 Java Servlet 容器,用于运行 Java Web 应用程序。

在构建 Nginx + Tomcat 集群时,通常会采用以下方式:
-- 负载均衡:Nginx 作为前端的负载均衡器,根据配置的策略将请求分发到后端的多个 Tomcat 实例上。例如,可以基于轮询、加权轮询、IP 哈希等算法进行分发。
-- 高可用性:通过监控 Tomcat 实例的状态,当某个实例出现故障时,Nginx 能够自动将请求转发到其他正常运行的实例上,确保服务的连续性。

举例来说,如果一个电商网站面临大量的用户访问,使用 Nginx + Tomcat 集群可以确保:
--在促销活动期间,即使访问量激增,系统也能快速响应,不会出现卡顿或崩溃。
-- 当某个 Tomcat 服务器进行维护或出现故障时,用户的购物体验不会受到影响,仍能正常浏览和下单。

总之,Nginx + Tomcat 集群为企业提供了一种可靠且高效的解决方案,以满足不断增长的业务需求和用户访问量。

1:关闭防火墙

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0

2:安装java环境

[root@localhost ~]# yum -y install java
[root@localhost ~]# java -version

3:安装tomcat

[root@localhost ~]# tar zxvf apache-tomcat-9.0.8.tar.gz 
[root@localhost ~]# mv apache-tomcat-9.0.8 /usr/local/tomcat8

4:启动tomcat

[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh
[root@localhost ~]# netstat -anpt | grep java

5:创建测试网页

[root@localhost ~]# mkdir -p /web/webapp1
[root@localhost ~]# vim /web/webapp1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<html>   
<head>
     <title>JSP test1 page</title>
</head>
   <body>
     <% out.println("动态页面 1,http://www.test1.com");%>
   </body> 
   <body> 
    <div>动态页面的图片 1</div><br><img src="logo.jpg"> 
   </body> 
</html>

6:修改tomcat主配置文件

[root@localhost ~]# vim /usr/local/tomcat8/conf/server.xml 

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Context docBase="/web/webapp1" path="" />
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>

7:重启tomcat

[root@localhost ~]# /usr/local/tomcat8/bin/shutdown.sh 
[root@localhost ~]# /usr/local/tomcat8/bin/startup.sh 

8:客户端访问测试

二:nginx配置(在192.168.10.101)

1:安装nginx

[root@localhost ~]# yum -y install pcre-devel zlib-devel gcc*
[root@localhost ~]# useradd -M -s /sbin/nologin nginx
[root@localhost ~]# tar zxvf nginx-1.12.0.tar.gz 
[root@localhost ~]# cd nginx-1.12.0
[root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
[root@localhost nginx-1.12.0]# make && make install
[root@localhost nginx-1.12.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

2:编辑测试网页文件

[root@localhost ~]# vim /usr/local/nginx/html/index.html 
<body> 
<h1>静态页面</h1> 
<p>这是个静态页面</p> 
</body>

3:添加图片

[root@nginx ~]# mkdir /usr/local/nginx/html/img //创建静态文件目录 
[root@nginx ~]# cp /root/logo.jpg /usr/local/nginx/html/img

4:修改主配置文件

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
(1)在http配置项中添加
upstream tomcat_server {
        server 192.168.10.102:8080 weight=1;
        server 192.168.10.103:8080 weight=1;
}


(2)在server配置项中添加
charset utf-8;
location / {
       root   html;
       index  index.html index.htm;
}

location ~ .*\.jsp$ {
        proxy_set_header HOST $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Client-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://tomcat_server;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
        root /usr/local/nginx/html/img;
        expires 30d;
}

5:启动nginx

[root@localhost ~]# nginx

6:修改tomcat的配置文件,并重启tomcat

   <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%a %r %t %{X-Real-IP}i" resolveHosts="false" />

6:测试

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

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

相关文章

10款超好用的文档加密软件丨2024文档加密软件分享

在现代的信息社会&#xff0c;企业和个人的重要数据都存储于电脑中&#xff0c;一旦丢失后果不堪设想。因此&#xff0c;文档加密软件应运而生。 文档加密软件是一种用于保护电子文档安全性的工具&#xff0c;它通过加密技术对文档内容进行编码&#xff0c;使得未授权的用户无…

C#知识|账号管理系统:使用带参数的SQL语句编程添加账号的方法。

哈喽,你好啊,我是雷工! 前边学习了登录窗体的实现,接下来接着学习使用带参数的SQL语句编程添加账号的方法。 以下为学习笔记。 01 非带参数方法 在DAL数据访问层编写AccountServer.cs类代码。 按照前面的练习,写法如下: public int AddAccount(Account account) {//定义S…

前端笔记-day13

文章目录 01-体验vw和vh02-vw适配02-适配.htmldemo.lessdemo.css 03-vw和vh不能混用03-vw和vh.htmldemo.lessdemo.css 04-综合案例-酷我demo.htmldemo.lessbase.lessdemo.css 酷我&#xff08;标准版&#xff09;index.htmlindex.lessindex.css 01-体验vw和vh <!DOCTYPE ht…

旗晟机器人AI智能算法有哪些?

在当今迅猛发展的工业4.0时代&#xff0c;智能制造和自动化运维已然成为工业发展至关重要的核心驱动力。伴随技术的持续进步&#xff0c;工业场景中的运维巡检已不再单纯地依赖于传统的人工运维方式&#xff0c;而是愈发多地融入了智能化的元素&#xff0c;其中智能巡检运维系统…

51单片机嵌入式开发:6、 STC89C52RC 定时器0-1-2-看门狗 操作

STC89C52RC 定时器0-1-2-看门狗 操作 1 定时器介绍1.1 定时器概述1.2 课程思路 2 定时器类型2.1 定时器0、12.2 定时器22.3 看门狗定时器2.4 中断介绍 3 定时器操作3.1 定时器0操作3.2 定时器1操作3.3 定时器2操作3.4 看门狗定时器操作 4 定时器总结 1 定时器介绍 1.1 定时器概…

金蝶API取数+JSON解析,FDL助力高效数据处理

目录 一、企业介绍 二、业务难题与挑战 商管预算管理瓶颈凸显&#xff1a;金蝶数据手工导出&#xff0c;跨库关联分析时效受限 金蝶API数据提取&#xff1a;挑战重重的技术攻坚战 三、解决方案 商管预算管理升级&#xff1a;API取数JSON解析&#xff0c;FineDataLink助力高效数…

uni-app三部曲之二: 封装http请求

1.引言 前面一篇文章写了使用Pinia进行全局状态管理。 这篇文章主要介绍一下封装http请求&#xff0c;发送数据请求到服务端进行数据的获取。 感谢&#xff1a; 1.yudao-mall-uniapp: 芋道商城&#xff0c;基于 Vue Uniapp 实现&#xff0c;支持分销、拼团、砍价、秒杀、优…

k8s核心操作_Deployment的扩缩容能力_Deployment自愈和故障转移能力---分布式云原生部署架构搭建022

然后我们上面说了k8s中的deployment的多副本能力 然后,我们再来看 k8s中的deployment的扩缩容能力 可以看到,对于扩容,要使用 kubectl scale 命令 对于缩容 要使用kubectl scale 命令都是使用这个命令对吧 来试试,可以看到上面命令 首先看看 kubectl get pod 可以看到有…

u-boot的主要目录结构

arch 各种芯片架构的相关代码,u-boot入口代码 board 各种单板相关的代码,主要包含存储器驱动等 board/hi3516a hi3516a单板相关的代码 arch/xxx/lib 各种体系结构的相关的代码,如ARM include 头文件 include/configs 各种单板的配置文件 common 各种功能实…

springboot篮球馆管理系统-计算机毕业设计源码21945

目 录 摘要 1 绪论 1.1选题背景 1.2研究意义 1.3论文结构与章节安排 2 篮球馆管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分析 2.4 …

SSO单点登录-1-同浏览器进行单点登录

前端同域 客户端前端同域&#xff0c;则cookie可以存在相同的域名或顶级域名下&#xff0c;一个客户端登录成功后&#xff0c;将token信息保存到域名下的cookie中其他不同客户端访问时&#xff0c;因为域名或者顶级域名相同&#xff0c;也能取到域名下的cookie中的token信息并…

华三m-lag三层转发+VRRP配置案例

目录 一、相关理论介绍 1.1 华三M-LAG介绍 1.2 DRCP协议 1.3 keepalive机制 1.4 MAD机制 1.5 一致性检查功能 二、M-LAG系统建立及工作过程 三、实验组网案例 3.1 组网需求 3.2 组网拓扑 3.3 设备接口及地址规划 四、具体配置命令 4.1 S6850-1的配置 4.2 S6850-2…

python爬虫和用腾讯云API接口进行翻译并存入excel,通过本机的Windows任务计划程序定时运行Python脚本!

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a;定时爬取外网的某个页面&#xff0c;并将需要的部分翻译为中文存入excel 接下了的&#xff0c;没学过的最好看一下 基本爬虫的学习 【爬虫】requests 结合 BeautifulSoup抓取网页数据_requests beauti…

Visual Studio 安装Python 环境

前言 我在使用Visual Studio作为Python工具的时候&#xff0c;碰到了一些环境问题和依赖包安装问题&#xff0c;现将问题和方法总结出来&#xff0c;供大家学习和参考。 一、Python 安装 Python官网&#xff1a; Welcome to Python.org 可以下载左侧的稳定发布版本 下载完成之…

昇思25天学习打卡营第21天 | Diffusion扩散模型

内容介绍&#xff1a; 扩散模型&#xff08;Diffusion Models&#xff09;有很多种理解&#xff0c;本文的介绍是基于denoising diffusion probabilistic model &#xff08;DDPM&#xff09;&#xff0c;DDPM已经在&#xff08;无&#xff09;条件图像/音频/视频生成领域取得…

The Quinfall昆法尔卡顿延迟高怎么办?快速降低昆法尔延迟

The Quinfall昆法尔中&#xff0c;玩家可以选择数十种不同的职业&#xff0c;体验从战士到法师&#xff0c;从猎人到工匠的丰富人生。每个职业都有其独特的技能和装备&#xff0c;玩家可以根据自己的喜好和游戏风格来自由搭配。而游戏中的战斗系统更是丰富多彩&#xff0c;无论…

【深度学习实战(44)】Anchor based and Anchor free(无锚VS有锚)

1 anchor-based 深度学习目标检测通常都被建模成对一些候选区域进行分类和回归的问题。在单阶段检测器中&#xff0c;这些候选区域就是通过滑窗方式产生的 anchor&#xff1b;在两阶段检测器中&#xff0c;候选区域是 RPN 生成的 proposal&#xff0c;但是 RPN 本身仍然是对滑窗…

gen_cross_contour_xld 为每个输入点生成一个十字形状的XLD轮廓。

gen_cross_contour_xld Name 名称 gen_cross_contour_xld — Generate one XLD contour in the shape of a cross for each input point. 为每个输入点生成一个十字形状的XLD轮廓。 Signature 签名 gen_cross_contour_xld( : Cross : Row, Col, Size, Angle : ) Descripti…

SQL创建一个actor_name表

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 对于如下表ac…

微信投票小程序源码系统 带礼物功能 完整的源代码包以及搭建部署教程

系统概述 随着移动互联网的快速发展&#xff0c;微信小程序以其便捷性、轻量化及强大的社交属性&#xff0c;已成为众多企业和个人进行品牌宣传、活动推广的重要工具。其中&#xff0c;微信投票小程序更是因其独特的互动性和参与感&#xff0c;深受用户喜爱。然而&#xff0c;…