一 案例部署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 0
systemctl 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/tomcat
cd 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/tomcat
drwxr-x --- 2 root root 4096 4月14日 18:22 bin
drwx--------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.txt
drwxr-x-----2 root root 4096 4月14日 18:22 temp
drwxr-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.policy
rw----------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.xml
rw----------1 root root 2313 2018年4月28日 jaspic-providers.xsd
-rw---------1 root root 3850 2018年4月28日 logging.properties
rw----------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.xsd
rw----------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 0
systemctl stop firewalld
(2)安装相关软件包
dnf -y install gcc pcre-devel zlib-devel openssl-devel
(3)创建用户 解压并编译安装nginx
useradd -M -s /sbin/nologin nginx
tar zxf nginx-1.26.3.tar.gz
cd nginx-1.26.3
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http+ssl+module --with=http_v2_module --with-pcre
make && make install
(4)配置nginx.conf
在 http{…}中加入以下代码,设定负载均衡的服务器列表,weight 参数表示权重,权重越高,被分配到的概率越大。为了使测试效果比较明显,我们把权重设置为一样
vim /usr/local/nginx/conf/nginx.conf
upstream 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.html
location ~ .*\.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.conf
location ~ .*\. (png|gif|jpeg|jpg)$ {
root /usr/local/nginx/html/img;
expires 30d;
}
下面在nginx上准备静态图片 先创建静态目录
mkdir /usr/local/nginx/html/img
cp /root/logo.jpg /usr/local/nginx/html/img
测试nginx配置文件是否正确
nginx -t
启动nginx服务
systemctl restart nginx
查看 nginx端口进程
netstat -anpt | grep nginx