tomcat基础进阶

                    tomcat基础进阶


前言

我们在前面的博客中介绍以及实现的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

Tomcat Architecture

blob.png

blob.png

Tomcat Installation

安装环境及软件版本:

System:CentOS6.7 
Tomcat
tomcat-8.0.33(binary distributions) 
JDK
java-1.8.0-openjdk.x86_64(yum install)

安装过程

[root@node1 ~]# [root@node1 ~]# wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.0.33/bin/apache-tomcat-8.0.33.tar.gz
[root@node1 ~]# tar xf apache-tomcat-8.0.33.tar.gz  -C /usr/local/
[root@node1 ~]# cd /usr/local ; ln -sv apache-tomcat-8.0.33 tomcat ; cd ~
[root@node1 ~]# wget http://download.oracle.com/otn-pub/java/jdk/8u77-b03/jdk-8u77-linux-x64.rpm #如果下载出错, 使用浏览器下载
[root@node1 ~]# rpm -ivh jdk-8u77-linux-x64.rpm   #安装JDK

[root@node1 ~]# vim /etc/profile.d/java.sh     #定义JAVA_HOME
export JAVA_HOME=/usr/java/latest
export PATH=$JAVA_HOME/bin:$PATH

[root@node1 ~]# vim /etc/profile.d/tomcat.sh    #配置tomcat的环境变量
export CATALINA_BASE=/usr/local/tomcat
export PATH=$CATALINA_BASE/bin:$PATH

[root@node1 ~]# source /etc/profile.d/tomcat.sh
[root@node1 ~]# source /etc/profile.d/java.sh

[root@node1 ~]# catalina.sh start  #启动tomcat, 默认监听在8080端口

测试

blob.png

Tomcat basic configuration

如何进入Tomcat manager页面?

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

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

blob.png

重启tomcat测试

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

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

blob.png 

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

blob.png

blob.png

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

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

blob.png

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

blob.png

配置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


#一次完整的虚拟主机配置过程

[root@node2 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>

[root@node2 conf]# mkdir -pv /data/webapps/{classes,META-INF,WEB-INF,lib} #创建虚拟主机的主目录

[root@node2 conf]# cd /data/webapps/
[root@node2 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
[root@node2 webapps]# catalina.sh stop
[root@node2 webapps]# catalina.sh start

测试虚拟主机

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

blob.png

总结

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

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

原创文章,作者:Net18-AnyISalIn,如若转载,请注明出处:http://www.178linux.com/15175

(0)
Net18-AnyISalInNet18-AnyISalIn
上一篇 2016-04-21 15:45
下一篇 2016-04-22 12:39

相关推荐

  • bash脚本入门之变量、运算、条件测试

    概述     脚本编程能力是作为运维工程师不可或缺的一项基本技能,各种系统的运维,如果完全靠命令行一条一条命令来执行,工作效率可想而知,而脚本却可以将完成一定功能的各个命令依据一定的流程控制,逻辑判断去完成某种功能,提升工作效率。本章就简单介绍一些linux下的bash脚本编程的基础入门知识,具体内容分为以下几个方面:…

    Linux干货 2016-08-12
  • 第四周作业2

    #### 1、 复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 首先,利用cp命令将/etc/skel目录复制为/home/tuser1: “` [root@localhost ~]# cp -r /etc/skel /home/tuser1 “` 随…

    Linux干货 2018-03-24
  • 加密与CA

    一次加密通讯流程: 1、生成数据 2、用单向加密数据生成特征码 3、用自己的私钥加密特征码放在数据后面 4、生成临时会话密钥加密特征码和数据 5、用对方的公钥加密临时密钥 2、私有CA 构建私有CA     1、生成私钥     2、自签署证书 给节点发放证书     …

    Linux干货 2017-02-13
  • Linux之iptables原理详解

    目录: 一、netfilter与iptables 二、filter、nat、mangle等规则表 三、INPUT、FORWARD等规则链和规则 四、Linux数据包路由原理 五、iptables编写规则  一、netfilter与iptables (1)Netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既…

    2017-08-04
  • openssl总结及私有CA的搭建

    一、前言 什么是openssl?讲openssl之前我们先了解一下什么是ssl?ssl是secure socket layer的简称,其使用对称加密,非对称加密(公钥加密解密),单向加密解密结合证书实现数据传输安全,openssl默认是在系统安装时就已经安装上去的。随着互联网的迅速发展,网络通信已经成为传递信息的主要途径。而通信时的数据传输大部分都是明文传输…

    Linux干货 2016-01-05
  • 磁盘管理之MBR,GPT的概念及MBR和GPT分区工具的使用

    一,概述 设备文件 I/O ports: I/O设备地址 一切皆文件 open() read() write()close() 设备类型: 块设备:block,存取单位“块”,磁盘 字符设备:char,存取单位”字符“,键盘 块设备和字符设备的区别 块设备可以随机访问,字符设备必须连续访问,如,/dev/null 块设备有缓存,字符设备没有缓存,因为字符设备…

    Linux干货 2016-09-06

评论列表(1条)