tomcat
文章目录
1. tomcat简介
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为9.0。
tomcat就是传说中的中间件之一,tomcat本身是一个容器,专门用来运行java程序,java语言开发的网页.jsp就应该运行于tomcat中。而tomcat本身的运行也依赖于jdk环境。
tomcat应用场景:lnmt
2. tomcat单项目部署
实验环境:
环境 | ip地址 |
---|---|
centos7 | 192.168.139.128 |
2.1 java环境安装
//安装jdk环境
[root@localhost ~]# yum -y install java-1.8.0-openjdk*
//查看安装的版本
[root@localhost ~]# java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
2.2 tomcat部署
//下载tomcat
[root@localhost ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.37/bin/apache-tomcat-9.0.37.tar.gz
//解压部署
[root@localhost ~]# tar xf apache-tomcat-9.0.37.tar.gz -C /usr/local
[root@localhost ~]# ln -s /usr/local/apache-tomcat-9.0.37/ /usr/local/tomcat
//添加环境变量
[root@localhost ~]# echo 'export PATH=/usr/local/tomcat/bin:$PATH' > /etc/profile.d/tomcat.sh
[root@localhost ~]# chmod +x /etc/profile.d/tomcat.sh
[root@localhost ~]# source /etc/profile.d/tomcat.sh
//启动tomcat
[root@localhost ~]# catalina.sh start
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@localhost ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 [::1]:25 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 [::]:*
LISTEN 0 100 [::]:8080 [::]:*
LISTEN 0 128 [::]:22 [::]:*
在浏览器上访问
3. tomcat多项目部署
实验环境:
环境 | ip地址 |
---|---|
centos7 | 192.168.139.128 |
3.1 java环境安装
//安装jdk环境
[root@localhost ~]# yum -y install java-1.8.0-openjdk*
//查看安装的版本
[root@localhost ~]# java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
3.2 tomcat部署
//下载tomcat
[root@localhost ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.37/bin/apache-tomcat-9.0.37.tar.gz
//解压部署
[root@localhost ~]# mkdir /usr/local/tomcat
[root@localhost ~]# tar xf apache-tomcat-9.0.37.tar.gz
[root@localhost ~]# cp -r apache-tomcat-9.0.37 /usr/local/tomcat/qq
[root@localhost ~]# cp -r apache-tomcat-9.0.37 /usr/local/tomcat/weixin
[root@localhost ~]# ls /usr/local/tomcat/qq/
bin CONTRIBUTING.md logs RELEASE-NOTES webapps
BUILDING.txt lib NOTICE RUNNING.txt work
conf LICENSE README.md temp
[root@localhost ~]# ls /usr/local/tomcat/weixin/
bin CONTRIBUTING.md logs RELEASE-NOTES webapps
BUILDING.txt lib NOTICE RUNNING.txt work
conf LICENSE README.md temp
//修改配置文件
//修改端口号,不然两个服务冲突
//这里修改weixin,qq保持默认
[root@localhost ~]# vim /usr/local/tomcat/weixin/conf/server.xml
......
<Server port="8006" shutdown="SHUTDOWN"> //修改端口号,不与qq项目冲突即可
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
......
......
<Connector port="8081" protocol="HTTP/1.1" //修改端口号
connectionTimeout="20000"
redirectPort="8444" /> //修改端口号
......
......
//启动服务
[root@localhost ~]# /usr/local/tomcat/qq/bin/catalina.sh start
Using CATALINA_BASE: /usr/local/tomcat/qq
Using CATALINA_HOME: /usr/local/tomcat/qq
Using CATALINA_TMPDIR: /usr/local/tomcat/qq/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/qq/bin/bootstrap.jar:/usr/local/tomcat/qq/bin/tomcat-juli.jar
Tomcat started.
[root@localhost ~]# /usr/local/tomcat/weixin/bin/catalina.sh start
Using CATALINA_BASE: /usr/local/tomcat/weixin
Using CATALINA_HOME: /usr/local/tomcat/weixin
Using CATALINA_TMPDIR: /usr/local/tomcat/weixin/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/weixin/bin/bootstrap.jar:/usr/local/tomcat/weixin/bin/tomcat-juli.jar
Tomcat started.
[root@localhost ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 [::1]:25 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8006 [::]:*
LISTEN 0 100 [::]:8080 [::]:*
LISTEN 0 100 [::]:8081 [::]:*
LISTEN 0 128 [::]:22 [::]:*
[root@localhost ~]# ps -ef | grep tomcat
root 1466 1 3 10:33 ? 00:00:03 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/qq/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/qq/bin/bootstrap.jar:/usr/local/tomcat/qq/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat/qq -Dcatalina.home=/usr/local/tomcat/qq -Djava.io.tmpdir=/usr/local/tomcat/qq/temp org.apache.catalina.startup.Bootstrap start
root 1506 1 3 10:33 ? 00:00:03 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/weixin/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/weixin/bin/bootstrap.jar:/usr/local/tomcat/weixin/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat/weixin -Dcatalina.home=/usr/local/tomcat/weixin -Djava.io.tmpdir=/usr/local/tomcat/weixin/temp org.apache.catalina.startup.Bootstrap start
root 1566 1545 0 10:35 pts/0 00:00:00 grep --color=auto tomcat
在浏览器上访问不同端口号测试
-
192.168.139.128:8080
-
192.168.139.128:8081
都能访问到说明没有问题
4. tomcat web管理
4.1 启用Server Status
、Manager App
、Host Manager
管理功能
如下图:
此时需要修改配置文件进行授权
//修改tomcat-users.xml
[root@localhost ~]# vim /usr/local/tomcat/qq/conf/tomcat-users.xml
......
<user username="role1" password="<must-be-changed>" roles="role1"/>
-->
<role rolename="manager-gui"/> //添加该行
<role rolename="admin-gui"/> //添加该行
<user username="tomcat" password="12321" roles="admin-gui,manager-gui"/> //添加该行,密码可以自定义
</tomcat-users>
//修改context.xml
[root@localhost ~]# vim /usr/local/tomcat/qq/webapps/manager/META-INF/context.xml
......
......
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192\.168\.139\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> //添加自己的网段
......
//修改context.xml
[root@localhost ~]# vim /usr/local/tomcat/qq/webapps/host-manager/META-INF/context.xml
......
......
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192\.168\.139\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> //添加自己的网段
......
//重启服务
[root@localhost ~]# /usr/local/tomcat/qq/bin/catalina.sh stop
Using CATALINA_BASE: /usr/local/tomcat/qq
Using CATALINA_HOME: /usr/local/tomcat/qq
Using CATALINA_TMPDIR: /usr/local/tomcat/qq/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/qq/bin/bootstrap.jar:/usr/local/tomcat/qq/bin/tomcat-juli.jar
[root@localhost ~]# /usr/local/tomcat/qq/bin/catalina.sh start
Using CATALINA_BASE: /usr/local/tomcat/qq
Using CATALINA_HOME: /usr/local/tomcat/qq
Using CATALINA_TMPDIR: /usr/local/tomcat/qq/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/qq/bin/bootstrap.jar:/usr/local/tomcat/qq/bin/tomcat-juli.jar
Tomcat started.
在浏览器上刷新网页验证
能进入之前三个界面说明配置成功
4.2 Manager App
管理
启用或停止某个网页
- 启用状态
- 停止状态
再次访问提示未找到