本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(1)

Tomcat部署与优化

发布于2020-11-19 20:45     阅读(1291)     评论(0)     点赞(16)     收藏(2)


Tomcat介绍

免费的、开放源代码的Web应用服务器
Apache软件基金会Jakarta项目中的一个核心项目
由Apache、Sun和一些公司及个人共同开发而成
深受Java爱好者的喜爱,并得到部分软件开发商的认可
目前比较流行的Web应用服务器

Tomcat核心组件

Tomcat由Web容器(web服务器)
Servlet容器(名为catalina,处理Servlet代码)
JSP容器(将JSP动态网页翻译成Servlet代码
在这里插入图片描述

Tomcat组成

server:tomcat实例  注意:一个JVM(java虚拟机)只能有一个tomcat实例
service:接收请求到处理的所有组件的集合。
service 组件分为connector(连接器)和container(容器)两部分。
connector:负责接受用户请求和消息报文的,将消息报文发往cotainer。
container是容器对外映射的接口,用于封闭和管理servlet。
engine:是一个容器,是用来将用户的请求发往它下面的虚拟主机的,engine是加载虚拟主机的一个容器。
host:是虚拟主机的容器
content:管理servlet。
servlet:是支持java语言的组件
详细的解释:https://www.cnblogs.com/haimishasha/p/10840606.html

Tomcat处理请求过程

在这里插入图片描述

Tomcat部署步骤

将需要配置的软件包上传到服务器上,配置Java环境
JDK是Java语言的软件开发工具包
JDK是Tomcat运行的必要环境

[root@server1 opt]# tar zxf jdk-8u91-linux-x64.tar.gz
[root@server1 opt]# mv jdk1.8.0_91/ /usr/local/java
[root@server1 opt]# cd /etc/profile.d/

[root@server1 profile.d]# vim java.sh
export JAVA_HOME=/usr/local/java ###设置java根目录
export PATH=$PATH:$JAVA_HOME/bin ###在PATH环境变量中添加JAVA根目录下的bin子目录
[root@server1 profile.d]# source java.sh ###java.sh脚本导入到环境变量中,使其生效

[root@server1 ~]# java -version ###查看版本
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

安装并启动Tomcat

[root@server1 opt]# tar zxf apache-tomcat-8.5.16.tar.gz
[root@server1 opt]# mv apache-tomcat-8.5.16 /usr/local/tomcat8

[root@server1 opt]# /usr/local/tomcat8/bin/startup.sh ###启动tomcat
Using CATALINA_BASE:   /usr/local/tomcat8
Using CATALINA_HOME:   /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
Tomcat started.
[root@server1 opt]# /usr/local/tomcat8/bin/shutdown.sh ###关闭tomcat
Using CATALINA_BASE:   /usr/local/tomcat8
Using CATALINA_HOME:   /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar

[root@server1 ~]# ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup ##优化执行路径
[root@server1 ~]# ln -s /usr/local/tomcat8/bin/shutdown.sh /usr/bin/tomcatdown

[root@server1 ~]# tomcatup
Using CATALINA_BASE:   /usr/local/tomcat8
Using CATALINA_HOME:   /usr/local/tomcat8
Using CATALINA_TMPDIR: /usr/local/tomcat8/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat8/bin/bootstrap.jar:/usr/local/tomcat8/bin/tomcat-juli.jar
Tomcat started.
[root@server1 ~]# netstat -anpt | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      48759/java
[root@server1 ~]# systemctl stop firewalld
[root@server1 ~]# setenforce 0

在浏览器中输入 http://20.0.0.10:8080 即可访问tomcat主页
在这里插入图片描述
写个Java小程序,测试是否可以正常工作

[root@server1 ~]# vi a.java
 public class a {
         public static void main (String[] args) {
                 System.out.println("你好,世界!!!");
         }
 }
 javac a.java          #执行,编译成功后生成可执行文件
 java a                   #测试,原样输出则为成功
 你好,世界!!!

加入测试页面,编辑配置文件并测试

[root@server1 opt]# mkdir -p /web/webapp1
[root@server1 opt]#  vi /web/webapp1/index.jsp
  <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  <html>
  <head>
  <title>JSP test1 page</title></head>
  <body><% out.println("welcome to test site");%>
  <div>动态页面</div>
  <img src="a.jpg" />
 </body>
 </html>
 #这个jsp中引入的page标签
 #language表示语言是Java
 #import类似于Java类中的import就是把包导入进来,这样在jsp才可以调用包中的类
 #pageEncoding表示页面的编码格式
 #图片插入 /web/webapp1目录下

关闭服务,修改主配置文件,在开启服务

[root@server1 opt]# tomcatdown
 vi /usr/local/tomcat8/conf/server.xml
 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
       <Context docBase="/web/webapp1" path="" reloadable="false"></Context>   #添加该行
[root@server1 opt]# tomcatup
[root@server1 opt]# netstat -anpt | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      86709/java          
tcp6       0      0 ::1:42086               ::1:8080                TIME_WAIT   -                

实验效果图
在这里插入图片描述

Tomcat常用文件

在这里插入图片描述

tomcat虚拟主机的设置

基于域名

创建主页并修改主页内容

[root@server1 ~]# mkdir -p /web/webapp1/test1
[root@server1 ~]# mkdir -p /web/webapp1/test2
[root@server1 ~]# vi /web/webapp1/test1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("Welcome to test site,http://www.test1.com");%>
<div>动态页面</div><br/><img src="a.jpg">
</body>
</html>

[root@server1 ~]# vi /web/webapp1/test2/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2 page</title>
</head>
<body>
<% out.println("Welcome to test site,http://www.test2.com");%>
<div>动态页面</div><br/><img src="b.jpg">
</body>
</html>

修改主配置文件

[root@server1 ~]# vi /usr/local/tomcat8/conf/server.xml
146       </Realm>
    147 
    148       <Host name="www.aaa.com"  appBase="webapps"
    149             unpackWARs="true" autoDeploy="true">
    150  <Context docBase="/web/webapp1" path="" reloadable="false"></Context>
    151         <!-- SingleSignOn valve, share authentication between web applications
    152              Documentation at: /docs/config/valve.html -->
    153         <!--
    154         <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    155         -->
    156 
    157         <!-- Access log processes all example.
    158              Documentation at: /docs/config/valve.html
    159              Note: The pattern used is equivalent to using pattern="common" -->
    160         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
    161                prefix="localhost_access_log" suffix=".txt"
    162                pattern="%h %l %u %t &quot;%r&quot; %s %b" />
    163        </Host>
    164        <Host name="www.bbb.com"  appBase="webapps"
    165              unpackWARs="true" autoDeploy="true">
    166        <Context docBase="/web/webapp1" path="" reloadable="false"></Context>
    167       </Host>
    168     </Engine>

关闭开启服务,关闭防火墙,核心防护,查看端口号是否开启

tomcatdown
tomcatup

[root@server1 ~]# systemctl stop firewalld.service
[root@server1 ~]# setenforce 0

[root@server1 ~]# netstat -anpt | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      14903/java      

本地增加映射

[root@server1 ~]# vi /etc/hosts
20.0.0.10   www.aaa.com www.bbb.com

验证
在这里插入图片描述

基于端口

修改配置文件

</Service>
    <Service name="Catalina">
         <Connector port="8081" protocol="HTTP/1.1"
                       connectionTimeout="20000"
                       redirectPort="8443" />
      <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
        <Host name="www.test2.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Context docBase="/web/webapp1/test2" path="" reloadable="false" />
        </Host>
      </Engine>
    </Service>
</Server>

[root@server1 ~]# tomcatdown
[root@server1 ~]# tomcatup

[root@server1 ~]# netstat -anpt | grep 8080 ###查看8080端口是否开启
tcp6       0      0 :::8080                 :::*                    LISTEN      51036/java
[root@server1 ~]# netstat -anpt | grep 8081 ###查看8081端口是否开启
tcp6       0      0 :::8081                 :::*                    LISTEN      51036/java

在这里插入图片描述

原文链接:https://blog.csdn.net/xwy9526/article/details/109772245



所属网站分类: 技术文章 > 博客

作者:java小王子

链接:http://www.javaheidong.com/blog/article/810/a597b1fd88f41db8e03e/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

16 0
收藏该文
已收藏

评论内容:(最多支持255个字符)