当前位置: 首页 > article >正文

nginx+tomcat负载均衡群集

一 案例部署Tomcat

目录

一 案例部署Tomcat

1.案例概述

1.1案例前置知识点

(1)Tomcat简介

(2)应用场景

2.实施准备

(1)关闭Linux防火墙

(2)安装Java

2.1 安装配置TOMACT

(1)tomcat的安装配置步骤如下

(2)解压生成apache-tomcat-9.0.8文件夹,将该文件移动到/usr/local/下

(3)进入cd /usr/local/tomcat下  在进入cd bin/下  查看一下文件  

(4)重启一下

(5)打开浏览器测试访问:http://192.168.10.101/8080  出现一下页面则表示tomcat已经启动成功

2.2tomcat配置相关说明

 (1)主要说明

(2)配置文件说明

2.3 tomcat 著配置问及那说明

2.4 tomcat server的组成部分说明

2.4 建立java的web站点

(1)在跟目录下建立一个web目录,并在里面建立一个webapp1目录,用于存放网站文件

(2)在webapp1 目录下建立一个index。jsp的测试页面

(3)修改tomcat的server.xml文件

(4)关闭tomcat在重新启动

(5)确认web访问

二 案例nginx+tomcat负载均衡。动静分离群集

1.案例分析

1.1案例概述

2.案例实施

2.1 nginx服务器配置

(1)关闭Linux防火墙

(2)安装相关软件包

(3)创建用户 解压并编译安装nginx

(4)配置nginx.conf

(5)测试效果 


一案例部署

1.案例概述

京北点指科技有限公司发布 V3 版移联建站管理系统,该项目为 Java 语言开发的Web 站点。目前,IBM 的WebSphere 及Oracle 的WebLogic 占据了市面上 Java 语言 Web 站点的 大部分份额。这两种软件以其无与伦比的性能及可靠性等优势被广泛应用于大型互联网公司 的Web 场景中,但是其高昂的价格也使得小型互联网公司对此望而却步。

Tomcat 自5.x版本以来,其性能上已经得到了大幅的提升,再加上其开放性的框架和 可二次开发等特性,已经完全可以用在访问量不是很大的生产环境下。目前,大多数用于 JSP 技术开发的电子商务网站基本应用了 Tomcat,而且 Tomcat 的Servlet 和 JSP 这两种API 也完全可以适用于 V3 版移联建站管理系统。

1.1案例前置知识点

(1)Tomcat简介

名称由来:Tomcat 最初是由 Sun 的软件构架师詹姆斯·邓肯·戴维森开发的。后
来他帮助将其变为开源项目,并由Sun贡献给 Apache软件基金会。由于大部分开源目0'Reilly 都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(公猫)。而0'Reilly出版的介绍Tomcat 的书籍的封面也被设计成了一个公猫的形象。而Tomcat 的Logo 兼吉祥物也被设计成了一只公猫。

其实 Tomcat 在开始研发的时候并不叫这个名字,早期 Tomcat 项目的名字叫Catalina,所以当我们安装完Tomcat后会发现安装路径下面有很多和Catalina 有关的目录和文件,而这些文件通常也是我们使用或者配置Tomcat 的重要文件。

(2)应用场景

Tomcat 服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP程序的首选。一般来说,Tomcat 虽然和 Apache 或者 Nginx 这些 Web 服务器一样,具有处理 HTML 页面的 功能,然而由于其处理静态HTML的能力远不及Apache 或者Nginx,所以 Tomcat 通常是作 为一个Servlet 和 JSP容器,单独运行在后端

2.实施准备

(1)关闭Linux防火墙

setenforce 0systemctl stop firewalld

(2)安装Java

dnf -y install java

2.1 安装配置TOMACT

(1)tomcat的安装配置步骤如下

拉包apache-tomcat-9.0.8.tat.gz

apache-tomcat-9.0.8.tar.gz

解压包 apache-tomcat-9.0.8.tat.gz

tar xf apache-tomcat-9.0.8.tar.gz

(2)解压生成apache-tomcat-9.0.8文件夹,将该文件移动到/usr/local/下

mv apache-tomcat-9.0.8/ /usr/local/tomcat

(3)进入cd /usr/local/tomcat下  在进入cd bin/下  查看一下文件  

cd /usr/local/tomcatcd bin/ls

(4)重启一下

./startup.sh

tomcat 默认运行在8080端口,运行netstat命令查看8080端口监听信息。

netstat -anpt | grep java

(5)打开浏览器测试访问:http://192.168.10.101/8080  出现一下页面则表示tomcat已经启动成功

2.2tomcat配置相关说明

tomcat的主目录为/usr/local/tomcat/

ll /usr/local/tomcatdrwxr-x --- 2 root root    4096     4月14日 18:22 bindrwx--------3 root root    4096     4月14日 18:22 conf drwxr-x-----2 root root    4096      4月14日 18:22 lib-rw-r ------1 root root    57092     2018年 4月28日 LICENSE drwxr-x-----2 root root    4096      4月14日 18:24 logs-rw-r-------1 root root    1804      2018年4月28日 NOTICE-rw-r-------1 root root    6852      2018年4月28日 RELEASE-NOTES-rw-r-------1 root root    16246     2018年 4月28日 RUNNING.txtdrwxr-x-----2 root root     4096     4月14日 18:22 tempdrwxr-x-----7 root root     4096     2018年4月28日 webapps drwxr-x-----3 root root     4096     4月14日 18:24 work 

 (1)主要说明

--- bin/:存放 Windows 或 Linux 平台上启动和关闭 Tomcat 的脚本文件。
| --- conf/:存放Tomcat 服务器的各种全局配置文件,其中最重要的是 server.xml 和
web. xml .
--- lib/:存放Tomcat 运行需要的库文件(JARS)
--- logs:存放 Tomcat 执行时的 LOG 文件。
--- webapps:Tomcat 的主要 Web 发布目录(包括应用程序示例)。
--- work:存放 JSP 编译后产生的 class 文件。

 

(2)配置文件说明

ll /usr/local/tomcat/conf/drwxr-x --- 3 root root  4096 4月14日 18:24 Catalina-rw---------1 rot root   13531 2018年4月28日 catalina.policyrw----------1 root root  7202 2018年4月28日 catalina.properties-rw --------1 root root  1400 2018年4月28日 context.xml-rw---------1 root root  1149 2018年4月28日 jaspic-providers.xmlrw----------1 root root  2313 2018年4月28日 jaspic-providers.xsd-rw---------1 root root  3850 2018年4月28日 logging.propertiesrw----------1 root root  7593 4月14日 18:58 server.xml-rw---------1 root root  2164 2018年4月28日 tomcat-users.xml-rw---------1 root root  2633 2018年4月28日 tomcat-users.xsdrw----------1 root root  170202 2018年 4月28日 web.xml

>catalina.policy:权限控制配置文件。
>catalina.properties:Tomcat 属性配置文件。
>context.xml:上下文配置文件。
>logging.properties: 日志 1og 相关配置文件。
>server.xml:主配置文件。
>tomcat-users.xml: manager-gui 管理用 户配置文件(Tomcat安装后提供一个 manager-gui 的管理界面,通过配置该文件可以开启访问)
>web.xml:Tomcat 的 servlet、servlet-mapping、filter、MIME 等相关配置。
2.3 tomcat 著配置问及那说明

server.xml 为 Tomcat 的主要配置文件,通过配置该文件,可以修改 Tomcat 的启动端 口、网站目录、虚拟主机、开启https 等重要功能。

整个 server.xml 由以下结构构成 :< Server>、<Service>、<Connector/> << Engine>、<Host>、<Context>、</Context>、</Host>、</Engine>、</Service>和</Server>。以下是默认安装后 server.xml 文件的部分内容,其中 <!---- >内的内容是注释信息,黑色斜体部分是要注意和需要经常更改的部分。

2.4 tomcat server的组成部分说明

Tomcat Server 由 Server、Service、Connector、Engine、Host 和 Context 组成。

(1) Server
Server 元素代表了整个Catalina 的 servlet 容器。
(2) Service
Service 是这样一个集合:它由一个或者多个Connector,以及一个Engine(负责处
理 所有 Connector 所获得的客户请求)组成。

(3) Connector
一个Connector 在某个指定端口上侦听客户请求,并将获得的请求交给 Engine 来处理,从Engine 处获得回应并返回客户。

  Tomcat 有两个典型的 Connector,一个直接侦听来自browser 的http 请求,一
个侦听来自其他 WebServer 的请求。

   Coyote Http/1.1 Connector 在端口 8080 处侦听来自客户 browser 的 http 请求。

  Coyote JK2 Connector 在端口8009 处侦听来自其他WebServer(Apache)的
servlet/jsp代理请求。

(4) Engine
Engine 下可以配置多个虚拟主机Virtual Host,每个虚拟主机都有一个域名。
当 Engine 获得一个请求时,它把该请求匹配到某个Host上,然后把该请求交给该Host来处理

  Engine 有一个默认虚拟主机,当请求无法匹配到任何一个Host上的时候,将交给
该默认 Host 来处理。

(5) Host
Host 代表一个Virtual Host,即虚拟主机,每个虚拟主机和某个网络域名 Domain
Name 相匹配。

  每个虚拟主机下都可以部署(deploy)一个或者多个Web App,每个Web App 对应于一个Context,有一个Context path。

   当Host 获得一个请求时,将把该请求匹配到某个Context 上,然后把该请求交
给该Context 来处理,匹配的方法是“最长匹配”,所以一个path == ""的 Context 将
成为该 Host的默认 Context。

所有无法和其他Context 的路径名匹配的请求都将最终和该默认Context 匹配。

(6) Context
一个Context 对应于一个 Web Application,一个Web Application 由一个或者
多个 Servlet 组成

2.4 建立java的web站点

(1)在跟目录下建立一个web目录,并在里面建立一个webapp1目录,用于存放网站文件

mkdir -p /web/webapp1

(2)在webapp1 目录下建立一个index。jsp的测试页面

vim /web/webapp1/index.jsp

(3)修改tomcat的server.xml文件

定义一个虚拟主机,并将网站文件路径指向已经建立的/web/webapp1在host段增加xontext段

vim /usr/local/tomcat/conf/server.xml<Context docBase="/web/webapp1" path="" /></Context>

(4)关闭tomcat在重新启动

/usr/local/tomcat/bin/shudown.sh/usr/local/tomcat/bin/startup.sh

(5)确认web访问

二 案例nginx+tomcat负载均衡。动静分离群集

1.案例分析

1.1案例概述

Nginx 是一款非常优秀的http服务器软件,它能够支持高达 50000 个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU 等系统资源消耗非常低。目 前很多大型网站都应用 Nginx 服务器作为后端网站程序的反向代理及负载均衡器,来提升整 个站点的负载并发能力。

Nginx 是一个非常强大的静态 web 服务,Tomcat 处理动态请求效率不高,而一般网站大 多数的内容都是静态文件(如图片、html、css、js等),经过Nginx 前端的反向代理加速 和过滤,后端Tomcat 处理请求的压力便可大大减少,只需负责处理动态内容就可以了。在 性能与稳定性的权衡下,使用Nginx+Tomcat 搭配便可让它们在各自擅长的领域大展拳脚

2.案例实施

2.1 nginx服务器配置

在nginx服务器192。168.10.102上安装nginx,反向代理两个tomcat站点,并实现负载均衡

(1)关闭Linux防火墙

setenforce 0systemctl stop firewalld

(2)安装相关软件包

dnf -y install gcc pcre-devel zlib-devel openssl-devel

(3)创建用户 解压并编译安装nginx

useradd -M -s /sbin/nologin nginxtar zxf nginx-1.26.3.tar.gzcd nginx-1.26.3./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http+ssl+module --with=http_v2_module --with-pcremake && make install

(4)配置nginx.conf

在 http{…}中加入以下代码,设定负载均衡的服务器列表,weight 参数表示权重,权重越高,被分配到的概率越大。为了使测试效果比较明显,我们把权重设置为一样

vim /usr/local/nginx/conf/nginx.confupstream tomcat_server {server 192. 168. 10. 101:8080 weight=1;server 192. 168. 10. 103:8080 weight=1;}

下面是编辑nginx静态页面文件

把Nginx 的默认站点通过 proxy_pass 方法代理到了设定好的 tomcat_server 负载均衡服务器组上。配置完整的nginx.conf 文件内容如下。

vim/usr/local/nginx/html/index.htmllocation ~ .*\.jsp$ {proxy_set_header HOST $host;proxy _set_header Client-IP $remote_addr;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://tomcat_server;}upstream tomcat_server {server 192.168.10.101 :8080 weight=1;server 192.168.10.103:8080 weight=2;}
vim /usr/local/nginx/conf/nginx.conflocation ~ .*\. (png|gif|jpeg|jpg)$ {root /usr/local/nginx/html/img;expires 30d;}

下面在nginx上准备静态图片 先创建静态目录

mkdir /usr/local/nginx/html/imgcp /root/logo.jpg /usr/local/nginx/html/img

测试nginx配置文件是否正确

nginx -t

启动nginx服务

systemctl restart nginx

查看 nginx端口进程

netstat -anpt | grep nginx

(5)测试效果 

http://www.lryc.cn/news/2397911.html

相关文章:

  • DEEPSEEK帮写的STM32消息流函数,直接可用.已经测试
  • day45 python预训练模型
  • 二维 根据矩阵变换计算缩放比例
  • Vue-Cropper:全面掌握图片裁剪组件
  • 建造者模式:优雅构建复杂对象
  • 现场总线结构在楼宇自控系统中的技术要求与实施要点分析
  • Axure组件即拖即用:垂直折叠菜单(动态展开/收回交互)
  • 学习路之PHP--easyswoole使用视图和模板
  • 《云原生安全攻防》-- K8s网络策略:通过NetworkPolicy实现微隔离
  • 06 APP 自动化- H5 元素定位
  • Axure疑难杂症:中继器新增数据时如何上传并存储图片(玩转中继器)
  • 定时线程池失效问题引发的思考
  • Vue-ref 与 props
  • AXURE安装+汉化-Windows
  • ArcGIS Pro字段计算器与计算几何不可用,显示灰色
  • mac电脑安装 nvm 报错如何解决
  • 第11节 Node.js 模块系统
  • 上海工作机会:Technical Writer Senior Technical Writer - 中微半导体设备
  • String 学习总结
  • Python微积分可视化:从导数到积分的交互式教学工具
  • Juce实现Table自定义
  • 【25.06】fabric进行caliper测试加环境部署
  • 【后端高阶面经:架构篇】51、搜索引擎架构与排序算法:面试关键知识点全解析
  • Windows应用-音视频捕获
  • 【OCCT+ImGUI系列】012-Geom2d_AxisPlacement
  • 优化WP外贸建站提升用户体验
  • 【C++高并发内存池篇】性能卷王养成记:C++ 定长内存池,让内存分配快到飞起!
  • mac下通过anaconda安装Python
  • 第3篇:数据库路由模块设计与 SQL 路由策略解析
  • ARINC818编解码设计FPGA实现