Tomcat

Tomcat

1. Tomcat简介

Tomcat是一个开源的Java Servlet容器,由Apache软件基金会开发和维护。它是一个服务器端的Java Web应用程序运行环境,用于执行Java Servlet、JavaServer Pages(JSP)和相关的Java平台技术。

Tomcat的主要功能是将Java Web应用程序部署到服务器上,接收来自客户端的HTTP请求,并将请求转发给相应的Servlet或JSP进行处理。它支持多线程处理请求,具有良好的性能和可扩展性。

Tomcat由一个核心容器(Catalina)和多个附加组件组成,如连接器(Connector)用于处理不同的网络协议(如HTTP、HTTPS)、JSP容器(Jasper)用于编译和执行JSP页面、管理工具(Manager)用于管理和监控应用程序等等。

Tomcat是一个轻量级的Java Web服务器,易于安装、配置和使用。它被广泛应用于Java Web开发领域,作为一个常用的Java Web应用程序服务器。

tomcat就是传说中的中间件之一,tomcat本身是一个容器,专门用来运行java程序,java语言开发的网页.jsp就应该运行于tomcat中。而tomcat本身的运行也依赖于jdk环境。

2. JDK简介

JDK(Java Development Kit)是一个软件开发套件,用于开发、编译、调试和执行Java应用程序。它包含了Java开发所需的各种工具和资源,如编译器、运行时环境(JRE)、Java类库、调试器、文档和示例代码等。JDK为开发人员提供了一个完整的开发平台,使他们能够创建跨平台的Java应用程序。开发人员可以使用JDK来写Java程式、编译成字节码、运行Java程序以及进行调试和测试等工作。JDK在Java开发中起着重要的作用,它是开发Java应用程序的基础工具。。

image-20231010142146201

3. 部署lamt

主机名ip系统版本apache版本MySQL版本Tomcat版本
kiwi123192.168.234.123CentOS-8httpd-2.4.57mariadb-10.3apache-tomcat-9.0.80

apache官方下载地址

Tomcat官方下载地址

3.1 源码编译apache
## 关闭防火墙
[root@kiwi123 ~]# systemctl disable --now firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@kiwi123 ~]# setenforce 0
[root@kiwi123 ~]# sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 

## 创建apache用户与组
[root@kiwi123 ~]# groupadd -r apache
[root@kiwi123 ~]# useradd -r -M -s /sbin/nologin -g apache apache
[root@kiwi123 ~]# 


## 获取apr包
[root@kiwi123 ~]# wget https://downloads.apache.org/apr/apr-1.7.4.tar.gz


## 获取apr-util包
[root@kiwi123 ~]# wget https://downloads.apache.org/apr/apr-util-1.6.3.tar.gz


## 获取httpd包
[root@kiwi123 ~]# wget http://archive.apache.org/dist/httpd/httpd-2.4.57.tar.gz


## 安装编译依赖环境
[root@kiwi123 ~]# yum -y install gcc gcc-c++ make pcre pcre-devel expat-devel perl openssl-devel


## 解压apr包
[root@kiwi123 ~]# tar xf apr-1.7.4.tar.gz && cd apr-1.7.4
[root@kiwi123 apr-1.7.4]# 


## 配置apr模块
[root@kiwi123 ~]# vim configure
··································略
    cfgfile=${ofile}T
    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
   #  $RM "$cfgfile"                  ### 注释掉这一行

    cat <<_LT_EOF >> "$cfgfile"
#! $SHELL
·····································略


## 开始编译apr
[root@kiwi123 apr-1.7.4]# ./configure --prefix=/usr/local/apr

··········································略
config.status: creating include/arch/unix/apr_private.h
config.status: executing libtool commands
config.status: executing default commands


## 开始安装apr
[root@kiwi123 apr-1.7.4]# make 


## 安装apr
[root@kiwi123 apr-1.7.4]# make install

## 解压apr包并编译安装
[root@kiwi123 apr-util-1.6.3]# tar xf apr-util-1.6.3.tar.gz && cd apr-util-1.6.3 && ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ && make && make install


## 解压httpd包
[root@kiwi123 ~]# tar xf httpd-2.4.57.tar.gz && cd httpd-2.4.57
[root@kiwi123 httpd-2.4.57]# 


## 开始编译并安装httpd
[root@kiwi123 httpd-2.4.57]# ./configure --prefix=/usr/local/apache \
>          --sysconfdir=/etc/httpd \
>          --enable-so \
>          --enable-ssl \
>          --enable-cgi \
>          --enable-rewrite \
>          --with-zlib \
>          --with-pcre \
>          --with-apr=/usr/local/apr \
>          --with-apr-util=/usr/local/apr-util/ \
>          --enable-modules=most \
>          --enable-mpms-shared=all \
>          --with-mpm=prefork  &> /dev/null && \
> make &> /dev/null && make install

[root@kiwi123 httpd-2.4.57]# ls /usr/local/
apache  apr-util  etc    include  lib64    sbin   src
apr     bin       games  lib      libexec  share


## 修改目录属组
[root@kiwi123 httpd-2.4.57]# chown -R apache.apache /usr/local/apache
[root@kiwi123 httpd-2.4.57]# 


## 创建软连接
[root@kiwi123 ~]# ln -s /usr/local/apache/include /usr/include


## 添加环境变量
[root@kiwi123 ~]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh


## 添加man文件
[root@kiwi123 ~]# echo 'MANPATH /usr/local/apache/man' >> /etc/man.config


## 取消配置文件里的servername前的注释
[root@kiwi123 ~]# sed -i '/#ServerName/s/#//g' /etc/httpd/httpd.conf


## 启动apache
[root@kiwi123 ~]# bash
[root@kiwi123 ~]# apachectl start
[root@kiwi123 ~]# ss -antl
State   Recv-Q  Send-Q   Local Address:Port   Peer Address:Port Process 
LISTEN  0       128            0.0.0.0:22          0.0.0.0:*            
LISTEN  0       128               [::]:22             [::]:*            
LISTEN  0       511                  *:80                *:*  


## 编写service文件并设置开机自启
[root@kiwi123 ~]# cat > /usr/lib/systemd/system/httpd.service <<EOF
> [Unit]
> Description=httpd server daemon
> After=network.target
> 
> [Service]
> ExecStart=/usr/local/apache/bin/apachectl start
> ExecStop=/usr/local/apache/bin/apachectl stop
> ExecReload=/bin/kill -HUP $MAINPID
> Type=forking
> 
> [Install]
> WantedBy=multi-user.target
> EOF
[root@kiwi123 ~]# systemctl daemon-reload
[root@kiwi123 ~]# systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
[root@kiwi123 ~]# 

image-20231010150047116

3.2 安装mariadb
[root@kiwi123 ~]# yum install -y mariadb*


## 设置开机自启
[root@kiwi123 ~]# systemctl enable --now mariadb
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
[root@kiwi123 ~]# 
3.3 安装tomcat
## 安装Java环境
[root@kiwi123 ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel


## 获取tomcat包
[root@kiwi123 ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.80/bin/apache-tomcat-9.0.80.tar.gz


## 解压部署
[root@kiwi123 ~]# tar xf apache-tomcat-9.0.80.tar.gz -C /usr/local/


## 做软连接
[root@kiwi123 ~]# cd /usr/local/
[root@kiwi123 local]# ln -s apache-tomcat-9.0.80/ tomcat


##优化tomcat
[root@kiwi123 webapps]# vim /usr/local/tomcat/conf/server.xml 

····························略
###取消掉这一段的注释,这是为了打开AJP协议,这个协议是专门为web服务器和应用服务器之前的高效通信而设置的,打开能够提高tomcat性能
    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="8443"
               maxParameterCount="1000"
               />


## 写一个Java页面
[root@kiwi123 ~]# mkdir /usr/local/tomcat/webapps/kiwi
[root@kiwi123 ~]# cd /usr/local/tomcat/webapps/kiwi/
[root@kiwi123 kiwi]# vim index.jsp
[root@kiwi123 kiwi]# cat index.jsp 
<html>
<head>
        <title>test page</title>
</head>
<body>
        <%
            out.println("This is kiwi");
        %>
</body>
</html>
[root@kiwi123 kiwi]# 


## 启动tomcat,注意,tomcat只能用根路径启动
[root@kiwi123 ~]# /usr/local/tomcat/bin/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
Using CATALINA_OPTS:   
Tomcat started.
[root@kiwi123 ~]# ss -antl
State  Recv-Q Send-Q      Local Address:Port  Peer Address:Port Process 
LISTEN 0      128               0.0.0.0:22         0.0.0.0:*            
LISTEN 0      80                0.0.0.0:3306       0.0.0.0:*            
LISTEN 0      128                  [::]:22            [::]:*            
LISTEN 0      1      [::ffff:127.0.0.1]:8005             *:*            
LISTEN 0      100                 [::1]:8009          [::]:*         
LISTEN 0      100                     *:8080             *:*            
LISTEN 0      511                     *:80               *:*   

image-20231010151240686

image-20231010151253374

4. tomcat多实例部署

## 获取tomcat8.0.1版本的包
[root@kiwi123 ~]# wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.1/bin/apache-tomcat-8.0.1.tar.gz


## 解压部署
[root@kiwi123 ~]# tar xf apache-tomcat-8.0.1.tar.gz -C /usr/local/


## 修改端口
[root@kiwi123 ~]# vim /usr/local/apache-tomcat-8.0.1/conf/server.xml 

·································· 略

-->
<Server port="8006" shutdown="SHUTDOWN">     ## 将端口改为8006
  <!-- Security listener. Documentation at /docs/config/listeners.html
  <Listener className="org.apache.catalina.security.SecurityListener" />
  -->
  <!--APR library loader. Documentation at /docs/apr.html -
  
  
·······························略


    <Connector port="8081" protocol="HTTP/1.1"    ## 将端口改为8081,可搜索8080来找到
               connectionTimeout="20000"
               redirectPort="8443" />

································略

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />    ## 将前面的端口改为8010


    <!-- An Engine represents the entry point (within Catalina) that processes
    
    
## 启动tomcat8.0.1
[root@kiwi123 ~]# /usr/local/apache-tomcat-8.0.1/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/apache-tomcat-8.0.1
Using CATALINA_HOME:   /usr/local/apache-tomcat-8.0.1
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-8.0.1/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/apache-tomcat-8.0.1/bin/bootstrap.jar:/usr/local/apache-tomcat-8.0.1/bin/tomcat-juli.jar
Tomcat started.
[root@kiwi123 ~]# ss -antl
State  Recv-Q Send-Q      Local Address:Port  Peer Address:Port Process 
LISTEN 0      128               0.0.0.0:22         0.0.0.0:*            
LISTEN 0      80                0.0.0.0:3306       0.0.0.0:*            
LISTEN 0      100                     *:8081             *:*            
LISTEN 0      128                  [::]:22            [::]:*            
LISTEN 0      1      [::ffff:127.0.0.1]:8005             *:*            
LISTEN 0      1      [::ffff:127.0.0.1]:8006             *:*    
LISTEN 0      100                 [::1]:8009          [::]:*  
LISTEN 0      100                     *:8010             *:*            
LISTEN 0      511                     *:80               *:*            
LISTEN 0      100                     *:8080             *:*    

image-20231010153352614

5. 修改权限

如果点击主页面的右边三个选项的话会出现访问被拒绝

image-20231010154721658

image-20231010155207755

接下来就去配置权限

## 添加用户
[root@kiwi123 conf]# cd /usr/local/tomcat/conf/
[root@kiwi123 conf]# vim tomcat-users.xml

···········································略

  <user username="role1" password="<must-be-changed>" roles="role1"/>
-->
<role rolename="manager-gui"/>    ## 添加这一行,角色必须写manager-gui
<user username="kiwi" password="<1>" roles="manager-gui"/>  ## 添加这一行
</tomcat-users>


## 修改context文件
[root@kiwi123 ~]# cd /usr/local/tomcat/webapps/manager/META-INF/
[root@kiwi123 META-INF]# vim context.xml

··························略

<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                   sameSiteCookies="strict" />
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="192\.168\.234\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />   ## 修改这一行
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
  
  
## 重启服务
[root@kiwi123 tomcat]# /usr/local/tomcat/bin/catalina.sh stop
[root@kiwi123 tomcat]# /usr/local/tomcat/bin/catalina.sh start

再重新点Manager APP

image-20231010161818542

已经可以进来了

image-20231010161838369

**访问HOST manger **

## 添加admin-gui角色
[root@kiwi123 ~]# cd /usr/local/tomcat/conf/
[root@kiwi123 conf]# vim tomcat-users.xml 

<role rolename="manager-gui"/>
<role rolename="admin-gui"/>      ## 添加admin-gui角色
<user username="kiwi" password="1" roles="manager-gui,admin-gui"/>
</tomcat-users>


## 修改host-manger 配置文件
[root@kiwi123 ~]# cd /usr/local/tomcat/webapps/host-manager/
  [root@kiwi123 host-manager]# cd META-INF/
[root@kiwi123 META-INF]# vim context.xml 

···················略
 
                   sameSiteCookies="strict" />
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="192\.168\.234\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />  ## 添加网段
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
  
  
## 重启服务
[root@kiwi123 conf]# /usr/local/tomcat/bin/catalina.sh stop
[root@kiwi123 conf]# /usr/local/tomcat/bin/catalina.sh start

再重新进host-manager

image-20231010170537264

image-20231010170548891

部署完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值