Nginx+Tomcat 负载均衡群集

目录

一,部署Tomcat

1,案例概述

2,案例前置知识点

(1)Tomcat简介

(2)应用场景

3,案例实施

3.1,实施准备

(1)关闭firewalld防火墙

(2)在安装Tomcat之前必须先安装JDK

3.2,查看JDK是否安装

3.3,安装配置Tomcat

(1)Tomcat的安装和配置步骤

​编辑

3.4,Tomcat配置相关说明

(1)主要目录说明

(2)配置文件说明

3.5,Tomcat主配置文件说明

[3.6,Tomcat Server的组成部分说明](#3.6,Tomcat Server的组成部分说明)

(1)Server

(2)Service

(3)Connector

(4)Engine

(5)Host

(6)Context

3.7,建立Java的web站点

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

二,案例Nginx+Tomcat

1,安装Nginx(略)

2,修改配置文件


一,部署Tomcat

1,案例概述

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

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

2,案例前置知识点

(1)Tomcat简介

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

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

(2)应用场景

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

3,案例实施

3.1,实施准备

(1)关闭firewalld防火墙
复制代码
systemctl stop firewalld
setenforce 0
(2)在安装Tomcat之前必须先安装JDK

JDK的全称是JavaDevelopment Kit,是Sun 公司免费提供的 Java 语言的软件开发工具包,其中包含Java虚拟机(JVM)。编写好的Java 源程序经过编译可形成Java字节码,只要安装了JDK,就可以利用JVM解释这些字节码文 件,从而保证了Java 的跨平台性。

在平台兼容性方面,JDK作为解释字节码文件并据此调用操作系统API实现对应功Java 虚拟机,与操作系统类型和平台位数密切相关,因此存在不同类型的版本,而Tomcat 也具有上述特征,默认情况下JDK已经安装,所以需要预先下载Tomcat,本章中所使用的 Tomcat 软件的源码包为 apache-tomcat-9.0.8.tar.gz。

3.2,查看JDK是否安装

复制代码
java -version

3.3,安装配置Tomcat

(1)Tomcat的安装和配置步骤
复制代码
tar xf apache-tomcat-9.0.8.tar.gz
mv apache-tomcat-9.0.8/ /usr/local/tomcat
cd /usr/local/tomcat/bin/startup.sh
netstat -anpt | grep 8080

3.4,Tomcat配置相关说明

复制代码
ll /usr/local/tomcat/
(1)主要目录说明

bin/:存放Windows或Linux平台上启动和关闭Tomcat 的脚本文件。

conf/:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml 和

web.xml.

lib/:存放Tomcat运行需要的库文件(JARS)。

logs:存放Tomcat 执行时的LOG文件。

webapps:Tomcat的主要Web发布目录(包括应用程序乐例)-

work:存放JSP编译后产生的class文件。

(2)配置文件说明

执行"11conf/"命令,便可看到配置文件清单。

复制代码
ll /usr/local/tomcat/conf

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

3.5,Tomcat主配置文件说明

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

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

3.6,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.1Connector在端囗8080处侦听来自客户browser的http 请求

(4)Engine

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

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

(5)Host

Host代表一个 VirtualHost,即虚拟主机,每个虚拟主机和某个网络域名 DomainName 相匹配。

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

当Host获得一个请求时,将把该请求匹配到某个Context上,然后把该请求交给该Context来处理,匹配的方法是"最长匹配",所以一个path==""的Context将成为该 Host 的默认 Context。所有无法和其他Context的路径名匹配的请求都将最终和该默认Context 匹配

(6)Context

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

3.7,建立Java的web站点

执行下面步骤可以建立Java的web 站点:

(1)在根目录下建立一个web目录,并在里面建立一个webapp1 目录,用于存放网站文件。
复制代码
mkdir /web/webappl
vim /web/webapp1/index.jsp
vim /usr/local/tomcat/conf/server.xml

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

二,案例Nginx+Tomcat

通常情况下,一台Tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独应用于生产环境下,所以需要一套更可靠的解决方案来完

善Web 站点 架构。

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

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

本案例介绍以Nginx作为负载均衡器、静态页面处理,Tomcat作为应用服务器的负载群集、动态页面处理的设置方法。

1,安装Nginx(略)

2,修改配置文件

复制代码
upstream my_tomcat  {
	server 192.168.10.102:8080 weight=1
	server 192.168.10.103:8080 weight=2
}
charset utf-8
location ~ .*\.jsp$ {
	proxy_pass http://my_tomcat;
	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;
}
location ~ .*\.(png|gif|jpeg|jpg)$ {
	root /usr/local/nginx/html/img;
	expires 30d;
}

cd /usr/local/nginx/html
mkdir img
cd img/
拉图片
nginx -t
systemctl restart nginx

第二,三台配置一样

复制代码
systemctl stop firewalld
setenforce 0
dnf -y install java
tar xf apache-tomcat-9.0.8.tar.gz
mv apache-tomcat-9.0.8.tar.gz  /usr/local/tomcat
cd  /usr/local/tomcat
ls
cd bin/
ls
./startup.sh
netstat -anpt | grep java
mkdir -p /web/webapp1
cd /web/webapp1/
拉index.jsp文件
vim index.jsp
test1(全改为1)
logo.png(修改)

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

/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
相关推荐
IT界小黑的对象2 小时前
virtualBox部署ubuntu22.04虚拟机 NAT+host only 宿主机ping不通虚拟机
linux·运维·服务器
我是唐青枫3 小时前
.NET AOT 详解
java·服务器·.net
藥瓿亭3 小时前
K8S认证|CKS题库+答案| 4. RBAC - RoleBinding
linux·运维·服务器·云原生·容器·kubernetes·cks
本郡主是喵4 小时前
并发编程 - go版
java·服务器·开发语言
stormsha4 小时前
Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
服务器·网络·网络安全·gateway
itachi-uchiha4 小时前
命令行以TLS/SSL显式加密方式访问FTP服务器
服务器·网络协议·ssl
二进制coder4 小时前
服务器健康摩尔斯电码:深度解读S0-S5状态指示灯
运维·服务器
依旧风轻5 小时前
服务器信任质询
运维·服务器
yi个名字5 小时前
Linux文件系统详解:从入门到精通
linux·运维·服务器
dessler6 小时前
代理服务器-LVS的3种模式与调度算法
运维·服务器·网络·算法·nginx·tomcat·lvs