重庆最便宜的网站建设,wordpress会员充值,正规品牌网站设计品牌,国家开发银行贷款学生在线系统第三阶段基础
时 间#xff1a;2023年7月25日
参加人#xff1a;全班人员
内 容#xff1a;
Tomcat应用服务 WEB服务
目录 一、中间件产品介绍
二、Tomcat软件简介
三、Tomcat应用场景
四、安装配置Tomcat
五、配置目录及文件说明
#xff08;一#xff09;to…第三阶段基础
时 间2023年7月25日
参加人全班人员
内 容
Tomcat应用服务 WEB服务
目录 一、中间件产品介绍
二、Tomcat软件简介
三、Tomcat应用场景
四、安装配置Tomcat
五、配置目录及文件说明
一tomcat主目录介绍
二Tomcat的脚本文件
三webapps目录介绍
六、Tomcat主配置文件说明
server.xml的结构构成
Server.xml主要参数说明
host参数详解
Context参数说明
请求处理流程
处理流程
七、自定义首页信息
八、NginxTomcat 负载均衡集群部署
Nginx代理介绍
1、代理概述
2、正向代理
3、反向代理
安装部署
九、Tomcat连接数据库
十、Tomcat配置SSL加密 一、中间件产品介绍
目前来说IBM的WebSphereOracle的Weblogic占据了市场上Java语言Web站点的部分份额该两种软件由于无与伦比的性能及可靠性等优势被广泛应用于大型互联网公司的Web场景中但是其高昂的价格也使得中小型互联网公司对此望而却步。
Tomcat自5.x版本以来其性能上已经得到很大幅度的提升加上其开放性的框架和二次开发等特性已经完全可以用在访问量不是很大的生产环境下目前大多数用于JSP技术开发的电子商务网站基本上都应用了Tomcat。
中间件产品RedHat JBoss、Oracle Tuxedo、caucho Resin。 二、Tomcat软件简介
Tomcat是Apache软件基金会Apache Software Foundation的Jakarta 项目中的一个核心项目由Apache、Sun和其他一些公司及个人共同开发而成。
Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他将其变为开源项目并由Sun贡献给Apache软件基金会。由于大部分开源项目OReilly都会出一本相关的书并且将其封面设计成某个动物的素描因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己最终他将其命名为Tomcat公猫。而OReilly出版的介绍Tomcat的书籍的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计成了一只公猫。
其实Tomcat最早在开始研发的时候并不叫这个名字早期的Tomcat的Logo项目的名字叫Catalina所以当我们安装完Tomcat后会发现安装路径下有很多Catalina有关的目录和文件。这些文件是我们配置或使用Tomcat的重要文件所在。 三、Tomcat应用场景
Tomcat服务器是一个免费的开放源代码的web应用服务器属于轻量级应用服务器应用在中小型系统和并发访问用户不是很多的场合是开发和调试JSP页面的首选Tomcat也可处理静态的HTML页面但是能力不及Apache或Nginx所以Tomcat通常作为一个servlet和JSP容器单独运行在后端。
Tomcat官网 http://tomcat.apache.org 四、安装配置Tomcat
实验环境四台服务器 服务器 huyang1 toncat8 192.168.59.137 huyang2 tomcat8 192.168.59.138 huyang3 nginx 192.168.59.140 huyang4 mariadb 192.168.59.142
安装tomcat服务
环境配置
1、关闭防火墙
systemctl stop firewalldiptables -Fsetenforce 0
2、上传软件包检查java环境没有的需要安装jdk 部 署
3、解包tar xf apache-tomcat-8.5.16.tar.gz
4、启动服务/usr/local/tomcat8/startup.sh 验 证
客户端访问192.168.59.137:8080 五、配置目录及文件说明
一tomcat主目录介绍
bin //存放windows或linux平台上启动或关闭的
二Tomcat的脚本文件
conf //存放Tomcat的各种全局配置文件其中最主要的是server.xml和web.xmllib //存放Tomcat运行需要的库文件(JARS)logs //存放Tomcat执行时的LOG文件webapps //Tomcat的主要Web发布目录、类似于nginx的html包括应用程实例work //存放jsp编译后产生的.class文件temp //存放临时文件
三webapps目录介绍
docs //tomcat帮助文档examples //web应用实例host-manager //主机管理manager //管理ROOT //默认站点根目录catalina.policy //权限控制配置文件catalina.properties //Tomcat属性配置文件context.xml //context用于指定额外的web目录logging.properties //日志log相关配置文件server.xml //主配置文件tomcat-users.xml //manager-gui管理用户配置文件Tomcat安装后生成的管理界面该文件可开启访问web.xml //Tomcat的servletservlet-mappingfilterMIME等相关配置 六、Tomcat主配置文件说明
server.xml 主要配置文件可修改启动端口设置网站根目录虚拟主机多实例、开启https加密等功能。
server.xml的结构构成 Server.xml主要参数说明 组件名称 功能介绍 server 表示一个运行于JVM中的tomcat实例。 service服务 将connector关联至engine因此一个service内部可以有多个connector但只能有一个引擎engine负责处理所有Connector所获得的客户请求。service内部有两个connector一个engine。因此一般情况下一个server内部只有一个service一个service内部只有一个engine但一个service内部可以有多个connector。 connector 接收用户请求类似于httpd的listen配置监听端口的。 一个Connector在某个指定端口上侦听客户请求并将获得的请求交给Engine来处理从Engine处获得回应并返回客户。 Tomcat Engine有两个典型的Connector一个直接侦听来自browser的http请求一个侦听来自其他webserver的请ote Http/1.1 Connector在端口8080处侦听来自客户Browser的http请求。 Coyote JK2 Connector在端口8009处侦听来自其他webserverApache的servlet/jsp代理请求。 engine 核心容器组件catalina引擎负责通过connector接收用户请求并处理请求将请求转至对应的虚拟主机host。 Engine有一个默认的虚拟主机当请求无法匹配到任何一个Host上的时候将交给该默认Host来处理。 host 代表一个Virtual Host虚拟主机每个虚拟主机和某个网络域名Domain Name相匹配 每个虚拟主机下都可以部署deploy一个或者多个Web app每个web app 对应一个Context有一个Context path。 当Host获得一个请求时将把该请求匹配到某个Context上然后把该请求交给该Context来处理匹配的方法是最长匹配所以一个path“”的Context将成为该Host的默认Context匹配。 所有无法和凄然Context的路径名匹配的请求都将最终和该默认Context匹配。 context 定义一个应用程序是一个最内层的容器类组件不能再嵌套。配置context的主要目的指定对应对的webapp的根目录类似于httpd的alias其还能为webapp指定额外的属性如部署方式等。 realm 可以用于任意容器类的组件中关联一个用户认证库实现认证和授权。可以关联的认证库有两种UserDatabaseRealm、MemoryRealm和JDBCRealm。 UserDatabaseRealm 使用JNDI自定义的用户认证库。 MemoryRealm 认证信息定义在tomcat-users.xml中。 JDBCRealm 认证信息定义在数据库中并通过JDBC连接至数据库中查找认证用户。
host参数详解 参数 参数说明 host 表示一个虚拟主机 name 指定主机名域名 appBase 应用程序基本目录即存放应用程序的目录.一般为appBasewebapps 相对于CATALINA_HOME而言的也可以写绝对路径。 unpackWARs 如果为true则tomcat会自动将WAR文件解压否则不解压直接从WAR文件中运行应用程序 autoDeploy 在tomcat启动时是否自动部署。 xmlValidation 是否启动xml的校验功能一般xmlValidationfalse。 xmlNamespaceAware 检测名称空间一般xmlNamespaceAwarefalse。
Context参数说明 参数 参数说明 Context 表示一个web应用程序加载位置通常为WAR文件位置 docBase 应用程序的路径或者是WAR文件存放的路径,也可以使用相对路径起始路径为此Context所属Host中appBase定义的路径。 path 表示此web应用程序的url的前缀这样请求的url为http://localhost:8080/path/**** reloadable 这个属性非常重要如果为true则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化自动装载新的应用程序可以在不重启tomcat的情况下改变应用程序
请求处理流程 处理流程
用户发送请求到WEB服务器该请求会被正在监听的Connector连接器接收并把该请求交给Service下的Engine来处理并等待Engine处理的结果。
Engine获得请求后会根据请求的主机信息来匹配相应的Host主机Host主机会根据请求的路径匹配对应的ContextContext web应用匹配上之后就构建request、response请求对象调用指定的Servlet来处理请求。
请求处理完成后会将response对象返回给Host主机Host主机将response对象返回给Engine引擎Engine再将response对象返回给Connector链接器最后Connector连接器将response返回给浏览器。
七、自定义首页信息
例
1、创建信息文件存放位置
mkdir -pv /web/webapp 2、创建测试页面
vim /web/webapp/index.jsp
配置如下 3、修改Tomcat的server.xml文件
vim /usr/local/tomcat8/conf/server.xml
配置如下 4、重启服务客户端登录验证 八、NginxTomcat 负载均衡集群部署
Nginx代理介绍
Nginx 服务器的反向代理服务是其最常用的重要功能由反向代理服务也可以衍生出很多与此相关的 Nginx 服务器重要功能比如后面会介绍的负载均衡。
当然在了解反向代理之前我们需要先知道什么是代理以及什么是正反向代理。
1、代理概述
举一个现实生活中的例子
比如我们要买一间二手房虽然我们可以自己去找房源但是这太花费时间精力了而且房屋质量检测以及房屋过户等一系列手续也都得我们去办再说现在这个社会等我们找到房源说不定房子都已经涨价了那么怎么办呢最简单快捷的方法就是找二手房中介公司为什么别人那里房源多啊于是我们就委托中介公司来给我找合适的房子以及后续的质量检测过户等操作我们只需要选好自己想要的房子然后交钱就行了。
代理简单来说就是如果我们想做什么但又不想直接去做那么这时候就找另外一个人帮我们去做。那么这个例子里面的中介公司就是给我们做代理服务的我们委托中介公司帮我们找房子。 Nginx 主要能够代理如下几种协议其中用到的最多的就是做Http代理服务器。 2、正向代理 弄清楚什么是代理了那么什么又是正向代理呢
这里我再举一个例子
大家都知道现在国内是访问不了 Google的那么怎么才能访问 Google呢我们又想美国人不是能访问 Google吗这不废话Google就是美国的如果我们电脑的对外公网 IP 地址能变成美国的 IP 地址那不就可以访问 Google了。你很聪明VPN 就是这样产生的。我们在访问 Google 时先连上 VPN 服务器将我们的 IP 地址变成美国的 IP 地址然后就可以顺利的访问了。 这里的 VPN 就是做正向代理的。正向代理服务器位于客户端和服务器之间为了向服务器获取数据客户端要向代理服务器发送一个请求并指定目标服务器代理服务器将目标服务器返回的数据转交给客户端。这里客户端是要进行一些正向代理的设置的。
3、反向代理
反向代理其实客户端对代理是无感知的因为客户端不需要任何配置就可以访问我们只需要将请求发送到反向代理服务器由反向代理服务器去选择目标服务器获取数据后在返回给客户端此时反向代理服务器和目标服务器对外就是一个服务器暴露的是代理服务器地址隐藏了真实服务器IP地址。 下面我们通过两张图来对比正向代理和方向代理 理解这两种代理的关键在于代理服务器所代理的对象是什么正向代理代理的是客户端我们需要在客户端进行一些代理的设置。而反向代理代理的是服务器作为客户端的我们是无法感知到服务器的真实存在的。
反向代理和正向代理的区别就是正向代理代理客户端反向代理代理服务器。 一台Tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题不能单独应用于生产环境下所以需要一套可靠的解决方案来完善web站点架构。 Nginx 是一款非常优秀的http服务器软件它能够支持高达50000个并发连接数的响应拥有强大的静态资源处理能力运行稳定并且内存CPU等系统资源消耗非常低
目前很多大型网站都用Nginx服务器做后端网站程序的反向代理及负载均衡器来提升整个站点的负载并发能力。 安装部署
三台服务器两台tomcat一台nginx
Tomcat1huyang1 Tomcat2:huyang2 nginx:huyang3 安装部署
安装tomcat服务器
1关闭防火墙selinux
2安装JDK配置Java环境版本保持一致
3安装Tomcat版本与Tomcat 1 保持一致
4建立一个web目录并在里面建立一个webapp目录用于存放网站文件
5在webapp目录下建立一个index.jsp的测试页面 安装nginx服务器
1、关闭防火墙
2、安装依赖 yum -y install pcre-devel zlib-devel openssl-devel
lrzsz 3、 创建nginx访问用户
useradd -M -s /sbin/nologin nginx
4、下载tar包解压配置编译安装
tar xf nginx-1.16.tar.gz -C /usr/src/cd /usr/src/nginx-1.16/./configure --prefix/usr/local/nginx --usernginx--groupnginx --with-file-aio --with-http_stub_status_module --with-http_ssl_module--with-http_flv_module--with-http_gzip_static_module make make install 5、修改配置文件
vim /usr/local/nginx/conf/nginx.conf
配置如下 6、启动服务
/usr/local/nginx/sbin/nginx 7、客户端登录验证 8、负载代理验证 代理成功因为设置的权重均为weight1所以现在每
刷新一次更换一下信息。 九、Tomcat连接数据库
服务器设置
一台tomcat一台mariadb
Tomcathuyang1
Mariadbhuyang4
Tomcat服务器配置在上述的基础上
1、下载并解压SLSaleSystem
tar xf SLSaleSystem.tar.gz -C /web/webapp/
ls /web/webapp/SLSaleSystem/ 2、修改tomcat配置文件
vim /usr/local/tomcat8/conf/server.xml
配置如下 3、客户端访问
当前未连接数据库只可以访问不可以登录 数据库配置
1、下载安装包
yum -y install mariadb-server mariadb 2、启动服务并进入数据库
systemctl start mariadb
建立数据库授权刷新退出 create database slsaledb; grant all on slsaledb.* to admin% identified by 123456; flush privileges; 3、导入信息
mysql -uroot slsaledb-2014-4-10.sql Tomcat服务器修改配置文件
vim /web/webapp/SLSaleSystem/WEB-INF/classes/jdbc.properties
配置如下加入数据库的ip和端口授权账户和密码 客户端登录验证
输入账户和密码后呈现下列画面。
以下商城框架搭建完毕可供开发人员拓展 十、Tomcat配置SSL加密
说明当通过Nginx调度tomcat进行工作时如果Nginx配置了sslTomcat是无需配置的。
扩展实验NginxOpenSSL实现https协议
创建加密用的私钥和证书文件
[rootlocalhost ~]# keytool -genkeypair -alias tomcat -keyalg RSA -keystore /usr/local/tomcat8/keystore 修改server.xml配置文件创建支持加密连接的Connector
vim /usr/local/tomcat8/conf/server.xml
配置如下 将上述配置注释去掉并修改为如下配置 而后重启tomcat
/usr/local/tomcat8/bin/shutdown.sh
/usr/local/tomcat8/bin/startup.sh
密码和证书的位置根据个人的具体环境而设置属性参数如下所述 属性 描述 clientAuth 如果设为true表示Tomcat要求所有的SSL客户出示安全证书对SSL客户进行身份验证 keystoreFile 指定keystore文件的存放位置可以指定绝对路径也可以指定相对于CATALINA_HOMETomcat安装目录环境变量 的相对路径。如果此项没有设定默认情况下Tomcat将从当前操作系统用户的用户目录下读取名为“.keystore”的文件。 keystorePass 指定keystore的密码如果此项没有设定在默认情况下Tomcat将使用“changeit”作为默认密码。 sslProtocol 指定套接字Socket使用的加密/解密协议默认值为TLS用户不应该修改这个默认值。 ciphers 指定套接字可用的用于加密的密码清单多个密码间以逗号,分隔。如果此项没有设定在默认情况下套接字可以使用任意一个可用的密码。
建议用google浏览器访问https://192.168.200.114:8443