Tomcat 环境搭建和管理

Tomcat 概念

Tomcat 是 Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成,由于有了 Sun的参与和支持,最新的 Servlet 和 JSP规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet2.4和 JSP 2.0规范. 因为 Tomcat 技术先进,性能稳定,免费,因而深爱Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的 Web 应用服务器.

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发 访问用户不是很多的场合下被普通使用,是开发和调试 JSP 程序的首选.Tomcat 和 IIS 等Web 服务器一样,具有处理HTML页面的功能,不过,Tomcat处理静态 HTML的能力不如 Apache。

jsp 了解

JSP: Java Server Pages ,中文名叫 java 服务器页面,是由Sun Microsystems公司倡导,许多公司参与一起建立的一种动态网页技术标准,JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm  *.html)中插入 Java程序段 (Scriptlet)和 JSP 标记(tag),从而形成JSP文件,后缀名为(*.jsp).用JSP开发的 Web 应用是跨平台的,既能在 Linux 下运行,也可以在其他系统上运行.

支持 JSP 网站 收费版 web 服务器    Oracle 的 weblogic    IBM 的 websphere

Weblogic 是美国 Oracle公司出品的一个 application server 确切的说是一个基于 JavaEE 架构的中间件,Weblogic 是用于开发,集成,部署和管理大型分布式 Web 应用,网络应用和数据库应用的 java 应用服务器。将 Java 的动态功能和 Java Enterprise 标准的安全性引入大型网络应用的开发、集成、部署管理之中.

WebSphere 是 IBM 的软件平台,它是Web应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,WebSphere 提供了可靠、灵活和健壮的软件运行服务.

中间件

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源.中间件位于客户机/服务器的操作系统之上,管理计算机资源和网络通讯,是连接两个独立应用程序或独立系统的软件,相连接的系统,即使它们有不同的接口,但通过中间件之间仍能交换信息,执行中间件的一个关键途径是信息传递,通过中间件,应用程序可以工作于多平台或 OS 环境.

中间件是一类连接软件组件和应用的计算机软件,它包括一组服务,以便于运行在一台或多台机器上的多个软件通过网络进行交互,该技术所提供的互操作性,推动了一致分布式体系架构的演进,该架构通常用于支持并简化那些复杂的分布式应用程序,它包括 web 服务器,事务监控器和消息队列软件.

Java 概念

JDK : java  development kit  (套件) 。简单的说 JDK 是面向开发人员使用的 SDK,它提供了 Java的开发环境和运行环境。就是Java开发工具,是进行Java开发的基础。

JDK(Java Development Kit)是Sun Microsystems针对Java开发人员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。JDK是学好Java的第一步。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。

SDK:Software Development Kit,软件开发工具包,一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。可以包括函数库、编译程序等。

JRE:java Runtime Enviroment 是指 Java 的运行环境,是面向 Java 程序的使用者而不是开发者,运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。Java Runtime Environment(包括Java Plug-in)是Sun的产品,包括两部分:Java Runtime Environment和Java Plug-in。JRE是可以在其上运行、测试和传输应用程序的Java平台。它包括Java虚拟机(jvm)、Java核心类库和支持文件。它不包含开发工具(JDK)--编译器、调试器和其它工具。JRE需要辅助软件--Java Plug-in--以便在浏览器中运行applet。

JVM:java virtual machineJVM 就是我们常说的 java 虚拟机。JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM是java的核心和基础,在java编译器和OS平台之间的虚拟处理器。它是一种基于下层的操作系统和硬件平台并利用软件方法来实现的抽象的计算机,可以在上面执行java的字节码程序。java编译器只需面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译器,编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。

在 JDK的安装目录里你可以找到 jre目录里面有两个文件夹bin 和 lib,在这里可以认为 bin 里的就是 jvm, lib 中则是 jvm 工作所需要的类库,而 jvm 和 lib 和起来就称为 jre。


Tomcat工作      模式:B/S模式       端口:8080


安装  JDK + Tomcat

[root@zh tomcat-mysql-jdk]# tar xf jdk-8u211-linux-x64.tar.gz -C /usr/local/ ;cd /usr/local/

[root@zh local]# ln -sv jdk1.8.0_211 jdk1.8
"jdk1.8" -> "jdk1.8.0_211"
  • 配置环境变量,让系统变量读到jdk的路径
[root@zh local]# cat /etc/profile.d/jdk8.sh 
export JAVA_HOME=/usr/local/jdk1.8.0_211
export CLASS_PATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jar/tools.jar:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

[root@zh local]# . /etc/profile.d/jdk8.sh 

[root@zh local]# java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
  • 安装 Tomcat 
[root@zh tomcat-mysql-jdk]# tar xf apache-tomcat-8.5.37.tar.gz -C /usr/local/src/
[root@zh tomcat-mysql-jdk]# cd /usr/local/src/apache-tomcat-8.5.37/

注意:Tomcat有两种安装方式,一种是直接解压就可以使用的二进制文件,第二种是编译安装,我们这里采用了第一种方法,下载的tomcat软件直接解压就可以执行的二进制文件,因为在官方默认下载的便是使用第一种方法安装,那么下载解压后的目录如下:

tomcat
    |---bin Tomcat:存放启动和关闭tomcat脚本;
    |---conf  Tomcat:存放不同的配置文件(server.xml和web.xml);
    |---lib:包含Tomcat使用的jar文件.unix平台此目录下的任何文件都被加到Tomcat的classpath中;
    |---logs:存放Tomcat执行时的LOG文件;
|---webapps:Tomcat的主要Web发布目录(包括应用程序示例);
    |--- ROOT:tomcat的家目录
        |--- index.jsp:Tomcat的默认首页文件
|---work:存放jsp编译后产生的class文件或servlet文件存放
|---temp:存放Tomcat运行时所产生的临时文件


[root@zh apache-tomcat-8.5.37]# ls bin/
bootstrap.jar                 configtest.bat    setclasspath.sh  tomcat-native.tar.gz
catalina.bat                  configtest.sh     shutdown.bat     tool-wrapper.bat
catalina.sh                   daemon.sh         shutdown.sh      tool-wrapper.sh
catalina-tasks.xml            digest.bat        startup.bat      version.bat
commons-daemon.jar            digest.sh         startup.sh       version.sh
commons-daemon-native.tar.gz  setclasspath.bat  tomcat-juli.jar

bat  是 windows 下的脚本(批处理)
sh   是 linux 下的脚本
catalina.sh是一个最关键的脚本,其他的启动脚本如startup,shutdown.sh,都是使用了不同的参数调用了该脚本,startup是以start参数调用了catalina脚本,shutdown使用stop调用了catalina脚本!


[root@zh apache-tomcat-8.5.37]# mv ../apache-tomcat-8.5.37/ /usr/local/tomcat ;cd
  • Tomcat 启动脚本 
[root@zh ~]# cat /etc/init.d/tomcat
#!/bin/bash 
JAVA_HOME=/usr/local/jdk1.8.0_211
export JAVA_HOME  
CATALANA_HOME=/usr/local/tomcat  
export CATALINA_HOME  
case "$1" in  
start)  
    echo "Starting Tomcat..."  
    $CATALANA_HOME/bin/startup.sh  
    ;;  
stop)  
    echo "Stopping Tomcat..."  
    $CATALANA_HOME/bin/shutdown.sh  
    ;;  
restart)  
    echo "Stopping Tomcat..."  
    $CATALANA_HOME/bin/shutdown.sh  
    sleep 2  
    echo  
    echo "Starting Tomcat..."  
    $CATALANA_HOME/bin/startup.sh  
    ;;  
*)  
    echo "Usage: $prog {start|stop|restart}"  
    ;;  
esac  
exit 0

赋予执行权限
[root@zh ~]# chmod +x /etc/init.d/tomcat

开启tomcat 
[root@zh ~]# service tomcat start
Unit tomcat.service could not be found.
Starting Tomcat...
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_211
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

开机自启
[root@zh ~]# chkconfig --add tomcat
[root@zh ~]# chkconfig --list tomcat
[root@zh ~]# netstat -tulnp | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      4486/java

关闭防火墙

  • 点击 Manager App  需要输入用户名 密码   因为还没有配置,可能显示的是 403 拒绝
  • 创建 Manager App 用户
</tomcat-users>
[root@zh /]# tail -9 /usr/local/tomcat/conf/tomcat-users.xml
 <role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>

角色说明
1:“manager-gui”:Allows access to the html interface(允许通过web的方式登录查看服务器信息)。
2:“manager-script”: Allows access to the plain text interface(允许以纯文本的方式访问)。
3:“manager-jmx”: Allows access to the JMX proxy interface(允许jmx的代理访问)。
4:“manager-status”: Allows access to the read-only status pages(允许以只读状态访问)。
5:  admin-gui: 允许访问HTML GUI
6 : admin-script: 允许访问文本接口
  • Tomcat8以上还要增加以下配置
[root@zh ~]# cat /usr/local/tomcat/conf/Catalina/localhost/manager.xml
<Context privileged="true" antiResourceLocking="false"
         docBase="${catalina.home}/webapps/manager">
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>


[root@zh ~]#/etc/init.d/tomcat stop && /etc/init.d/tomcat start


  • 搭建基于域名的虚拟主机

[root@zh ~]# vim /usr/local/tomcat/conf/server.xml
<Host name="zhtest1"  appBase="/var/www/html">
<Context path="" docBase="/var/www/html/web1" />
</Host>
<Host name="zhtest2"  appBase="/var/www/html">
<Context path="" docBase="/var/www/html/web2" />
</Host>

#在末尾的</Engine>上面添加上面这几行

appBase指定应用程序(网站)的基本路径,这里可以存放多个程序(网站),一般是相对路径,相对于tomcat的安装目录。
Context path=""为虚拟目录,如果是空,表示直接就是/,如果是如path="aa",那么访问的时候就是site:8080/aa
docBase="……" 为实际目录,就是可以是绝对路径,如果是相对路径就是基于appBase

[root@zh ~]# mkdir -p /var/www/html/{web1,web2}
[root@zh ~]# service tomcat stop ; service tomcat start
[root@zh ~]# echo test1 > /var/www/html/web1/index.html
[root@zh ~]# echo test2 > /var/www/html/web2/index.html

验证
[root@zh ~]# curl zhtest1:8080
test1
[root@zh ~]# curl zhtest2:8080
test2

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值