tomcat基础进阶

tomcat基础进阶



大纲

前言

  • Tomcat Architecture
  • Tomcat Installation
  • Tomcat basic configuration
    • 如何进入Tomcat manager页面?
    • 配置Virtual_Host
  • 总结

前言

我们在前面的博客中介绍以及实现的web架构都是基于”世界上最好的语言”PHP实现动态web站点, 事实上在当今的web服务器端还经常python,perl,Java Script等编程语言实现动态的web站点, 我们今天就介绍一款实现著名的开源软件tomcattomcat其实是一个Serlet Container,我们不能将其与nginx,httpd等软件混淆, tomcat其实是一款用C语言实现的Web Application Server, 就相当于我们之前的php-fpm,本文主要介绍tomcat的安装及基本使用进阶

相关学习资料 
如果要深入理解tomcat就必须要了解Java的技术体系, 由于本人水平太低, 这里没法给大家做具体的解释, 遂提供一些参考资料供大家深入学习.

Tomcat官方站点Java Time Line

安装过程

[[email protected] ~]# [[email protected] ~]# wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.0.33/bin/apache-tomcat-8.0.33.tar.gz
[[email protected] ~]# tar xf apache-tomcat-8.0.33.tar.gz  -C /usr/local/
[[email protected] ~]# cd /usr/local ; ln -sv apache-tomcat-8.0.33 tomcat ; cd ~
[[email protected] ~]# wget http://download.oracle.com/otn-pub/java/jdk/8u77-b03/jdk-8u77-linux-x64.rpm #如果下载出错, 使用浏览器下载
[[email protected] ~]# rpm -ivh jdk-8u77-linux-x64.rpm   #安装JDK
[[email protected] ~]# vim /etc/profile.d/java.sh     #定义JAVA_HOME
export JAVA_HOME=/usr/java/latest
export PATH=$JAVA_HOME/bin:$PATH
[[email protected] ~]# vim /etc/profile.d/tomcat.sh    #配置tomcat的环境变量
export CATALINA_BASE=/usr/local/tomcat
export PATH=$CATALINA_BASE/bin:$PATH
[[email protected] ~]# source /etc/profile.d/tomcat.sh
[[email protected] ~]# source /etc/profile.d/java.sh
[[email protected] ~]# catalina.sh start  #启动tomcat, 默认监听在8080端口

测试

Tomcat basic configuration

如何进入Tomcat manager页面?

现在我们搭建了最基础的tomcat服务器, 上面没有跑我们的JSP脚本, 是tomcat提供的一个manual页面, 页面的左上方有几个图形界面的管理界面server status,manager appHost manager, 我们需要提供用户名和密码才能进入并配置它们

修改/usr/local/tomcat/conf/tomcat-users.xml文件

重启tomcat测试

tomcat默认的用户认证是basic认证, 不进行加密, 如果有人在你的网络中进行抓包很容易截获用户名密码..

你现在的表情很可能是下面这样的

然而, 我们现在登录manager-gui然后使用wire shark进行抓包

所以建议大家不要使用basic认证

(⊙o⊙)…, 刚才有点跑题了, 我们来看一下manager-gui界面, 这是tomcat-status界面, 可以看到内存的占用情况

这是tomcat-host-manager界面, 可以在这这里部署virtual_Host

配置Virtual_Host

我们早已熟悉在httpd,nginx虚拟主机的配置, 我们现在来看看如何在tomcat上配置虚拟主机吧!

对tomcat进行配置之前, 我们需要了解其配置文件的结构
 
server.xml配置文件的结构
 
<server>
    <service>
        <connector>
            <Engine>
                <Host>
                    <Context>
                    </Context>
                    ....    
                </Host>
                ....
            </Engine>
            ...
        </connector>
        ...
    </service>
</server>
 
其中, service是用来连接connector和server的, connector可以有多个, Engine、Host、Context都可以有多个
 
顾名思义, 我们的虚拟主机应该定义在<Host> </Host> 中
 
我们先来看一个最简单的VirtualHost定义
 
<Host name="www.anyisalin.com" appBase="/data/webapps" />
 
上述意思为. FQDN为www.anyisalin.com, 虚拟主机的路径在/data/webapps, 但是我们没有定义<Context>, <Context>就类似于httpd中的Alias, Nginx中的location
 
 
#一次完整的虚拟主机配置过程
 
[[email protected] conf]# vim server.xml, 在engine中添加如下内容{位置一定要放对}
 
<Engine name="catalina" defaultHost="web1.anyisalin.com" jvmRoute=TomcatA/>  #修改默认虚拟主机
 
#添加虚拟主机
<Host name="web1.anyisalin.com" appBase="/data/webapps/" unpackWARS="true" autoDeploy="true">
    <Context path="" docBase="/data/webapps" reloadable="true" />
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/data/logs"
         prefix="web1_access_log." suffix=".txt"
         pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>
 
[[email protected] conf]# mkdir -pv /data/webapps/{classes,META-INF,WEB-INF,lib} #创建虚拟主机的主目录
 
[[email protected] conf]# cd /data/webapps/
[[email protected] webapps]# vim index.jsp   #创建主页文件
<%@ page language="java" %>
<html>
  <head><title>TomcatA</title></head>
  <body>
    <h1><font color="red">TomcatA.magedu.com</font></h1>
    <table align="centre" border="1">
      <tr>
        <td>Session ID</td>
    <% session.setAttribute("magedu.com","magedu.com"); %>
        <td><%= session.getId() %></td>
      </tr>
      <tr>
        <td>Created on</td>
        <td><%= session.getCreationTime() %></td>
     </tr>
    </table>
  </body>
</html>
 
#保存退出, 重启tomcat
[[email protected] webapps]# catalina.sh stop
[[email protected] webapps]# catalina.sh start


测试虚拟主机

这个页面文件在我们以后的实验中有大用!!

总结

本篇文章简单的介绍了tomcat的使用, 下几篇文章才是重中之重, 大家千万不要错过 !

作者水平很低, 如果有错误及时指出, 如果你觉得本文写的好请点一波赞~(≧▽≦)/~ 
作者: AnyISaIln QQ: 1449472454 
感谢: MageEdu

时间: 2024-12-16 02:12:22

tomcat基础进阶的相关文章

Tomcat 学习进阶历程之Tomcat架构与核心类分析

前面的http及socket两部分内容,主要是为了后面看Tomcat源码而学习的一些网络基础.从这章开始,就开始实际深入到Tomcat的'内在'去看一看. 在分析Tomcat的源码之前,准备先看一下Tomcat的架构与一些核心类的简单分析,并简单介绍一下Tomcat是如何处理一次Http请求的.这部分内容有相当一部分来源于网络,在此,感谢原作者的贡献. Tomcat的总体架构 Tomcat的架构关系可以从Tomcat的配置文件server.xml中看到端倪. 从上图中可以看出Tomcat 的心脏

Tomcat基础及常见使用入门

Tomcat介绍: Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选.对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求.实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的. 诀窍是,当配置正确时,Apache

高性能Web服务之tomcat基础应用详解(一)

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

tomcat基础应用详解

一,  首先我们来谈谈tomcat到底 什么,干什么用,为什么要使用tomcat 1) 先简单介绍下tomcat服务器 Tomcat 是一个java web 服务器,专门用来运行java程序的,同时也被为servlet容器(在下面说说什么是servlet容器),同时也是apache软件基金会的一个核心项目.它是由Java语言编写而成,目前已经出现了tomcat9.0测试版. 2)现在就谈谈tomcat 与Apache的区别和联系: Apache是web服务器(主要做静态的解析:如 html ),

shell脚本基础进阶(四)----作业

20150913-15作业 1.描述shell程序的运行原理(可附带必要的图形说明) shell脚本基础进阶(一)----shell介绍 2.总结shell编程中所涉及到的所有知识点(如:变量.语法.命令状态等等等,要带图的哟) shell脚本基础进阶(二)----变量及运算符 3.总结课程所讲的所有循环语句.条件判断的使用方法及其相关示例:(if (jpg|png is not exist):echo "You say a XX") shell脚本基础进阶(三)----流程控制语句

Tomcat专题一:tomcat基础之java

Tomcat基础之JAVA 各位小伙伴,从这篇文章开始,接连将有七篇文章来对tomcat这个软件,或者说是WEB容器做一个专题讨论.还是一样的格调,本人不会有意排版,把文章搞的跟专业论文一样,只是想到哪写到哪,尽量写出自己知道的东西. 之所以介绍一下java,是因为tomcat所面向的语言就是java语言,它是java程序的一个解释容器.虽然tomcat自身也实现了一个WEB容器,不但可以解释java程序,也可以解释html语言,但是在生产环境中,约定俗成的都是用tomcat来构建java应用服

Tomcat基础配置详解

Tomcat基础配置详解 组件原理图如下: 任何tomcat实例就是一个server,而一个server内部要想能够解析jsp页面转义编译serlet程序,要靠其引擎来实现 而引擎才是真正意义上执行jsp代码的容器,都是tomcat用类来描述这些组件的 同时,为了接受用户的请求,需要基于connector组件,所谓监听的套接字的程序,能够接手用户的请求,被称为连接器 一个server内部可以完全运行N个引擎,无非就是运行多个虚拟机而已 war包的概念 放在网页目录可以直接访问,而部署的时候可以自

Varnish基础进阶

Varnish基础进阶 前言 互联网早已惠及全人类, 我们可以通过网络与家人.朋友进行实时通信, 也能通过网络随时随地在各大电商站点上购物, 我们访问web站点的速度也越来越快, 这背后都是有很多精巧的架构以及各种先进的技术来支撑的, 我们就今天主要聊聊Web的缓存技术, 对于当今的互联网来说, Cahe Is King, 缓存真的有那么神奇么? 就由我来带领朋友们先领略一番当今最流行的开源缓存解决方案Varnish的风采 为什么需要缓存? 当今的Web站点, 特别是电商站点; 时常承受着高并发

Tomcat 学习进阶历程之关闭钩子

使用JAVA的过程中,经常遇到程序启动时初始化一下资源,或生成一下临时文件,程序退出时要清除这些临时文件,或者程序退出时执行一下必要的其他操作.如果程序是通过我们提供的关闭/退出按钮正常退出的,一切还都好处理,但是如果用户直接关闭虚拟机运行的窗口,那一切就会变的比较复杂. 好在java提供了一种优雅的方式去解决这种问题.使得关闭的善后处理的代码能执行.java的关闭钩子能确保总是执行,无论用户如何终止应用程序.除非用户kill,这个是个死穴. 对java而言,虚拟机会对以下几种操作进行关闭: (