首页 > 其他 > 详细

tomcat基础

时间:2015-10-28 19:30:42      阅读:428      评论:0      收藏:0      [点我收藏+]
  1. 源码安装tomcat

使用到的包:
apache-tomcat-8.0.23.tar.gz
jdk-7u67-linux-x64.rpm 
1.安装jdk
rpm -ivh jdk-7u67-linux-x64.rpm
查看安装生成的主要文件:
[root@node1 java]# cd /usr/java/
[root@node1 java]# ll
total 4
lrwxrwxrwx. 1 root root   16 Oct 28 15:05 default -> /usr/java/latest
drwxr-xr-x. 8 root root 4096 Oct 28 15:05 jdk1.7.0_67
lrwxrwxrwx. 1 root root   21 Oct 28 15:05 latest -> /usr/java/jdk1.7.0_67
2.配置环境变量:
vim /etc/profile.d/java.sh内容如下:
export JAVA_HOME=/usr/java/latest
export PATH=$JAVA_HOME/bin:$PATH
重读生效 . /etc/profile.d/java.sh
测试环境变量设置是否正确:
[root@node1 ~]# java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
3.安装tomcat:
[root@node1 ~]# tar xf apache-tomcat-8.0.23.tar.gz -C /usr/local/
[root@node1 ~]# cd /usr/local/
[root@node1 local]# ln -sv apache-tomcat-8.0.23/ tomcat
‘tomcat’ -> ‘apache-tomcat-8.0.23/’
[root@node1 local]# cd tomcat/
[root@node1 tomcat]# ls
bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
Tomcat的目录结构解释:
    bin: 脚本及启动时用到的类
    lib: 类库
    conf: 配置文件
    logs: 日志文件
    webapps: 应用程序默认部署目录
    work:工作目录,所有转换过程---例如JSP--->class--->java
    temp:临时文件目录
配置文件:
[root@node1 conf]# pwd
/usr/local/tomcat/conf
[root@node1 conf]# ls
Catalina         catalina.properties  logging.properties  tomcat-users.xml  web.xml
catalina.policy  context.xml          server.xml          tomcat-users.xsd
    server.xml: 主配置文件
    context.xml:每个webapp都可以有专用的配置文件,这些配置文件通常位于webapp应用程序目录下的WEB-INF目录中,用于定义会话管理器、JDBC等;conf/context.xml是为各webapp提供默认配置;
    web.xml:每个webapp“部署”之后才能被访问;此文件则用于为所有的webapp提供默认部署相关的配置;
    tomcat-users.xml:用户认证的账号和密码配置文件;
    catalina.policy:当使用-security选项启动tomcat实例时会读取此配置文件来实现其安全运行策略;
    catalina.properties:Java属性的定义文件,用于设定类加载器路径等,以及一些JVM性能相关的调优参数
4.配置tomcat环境变量:
vim /etc/profile.d/catalina.sh内容如下:
export CATALINA_HOME=/usr/local/tomcat
export PATH=$CATALINA_HOME/bin:$PATH
重读生效: . /etc/profile.d/catalina.sh
查看环境变量配置是否正确:
[root@node1 tomcat]# . /etc/profile.d/catalina.sh
[root@node1 tomcat]# catalina.sh version
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/latest
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.0.23
Server built:   May 19 2015 14:58:38 UTC
Server number:  8.0.23.0
OS Name:        Linux
OS Version:     3.10.0-229.el7.x86_64
Architecture:   amd64
JVM Version:    1.7.0_67-b01
JVM Vendor:     Oracle Corporation
5.启动tomcat
[root@node1 ~]# 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/java/latest
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
查看端口占用了8080和8009,8009端口提供ajp协议,是一种二进制协议,用于apache在前端使用ajp与tomcat交互
[root@node1 ~]# ss -tnlp | grep java
LISTEN     0      1          ::ffff:127.0.0.1:8005                    :::*      users:((java",3599,63))
LISTEN     0      100                      :::8009                    :::*      users:((java",3599,48))
LISTEN     0      100                      :::8080                    :::*      users:((java",3599,43))

访问测试:
下面的页面默认放在webapps/ROOT/  目录下

技术分享

启用Server-status,Manage APP,Host Manager三个功能:
编辑/usr/local/apache-tomcat-8.0.23/conf/tomcat-users.xml 增加如下内容
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
重启tomcat
catalina.sh stop
catalina.sh start

测试:

status:

技术分享

manager:

技术分享

host-manager:

技术分享

如果使用yum安装tomcat,默认没有上面的管理页面,需要额外安装tomcat-admin-webapps

[root@node1 ~]# yum list all | grep tomcat
pki-tps-tomcat.noarch                   10.1.2-7.el7                   CD       
tomcat.noarch                           7.0.54-1.el7                   CD       
tomcat-admin-webapps.noarch             7.0.54-1.el7                   CD       
tomcat-docs-webapp.noarch               7.0.54-1.el7                   CD       
tomcat-el-2.2-api.noarch                7.0.54-1.el7                   CD       
tomcat-javadoc.noarch                   7.0.54-1.el7                   CD       
tomcat-jsp-2.2-api.noarch               7.0.54-1.el7                   CD       
tomcat-jsvc.noarch                      7.0.54-1.el7                   CD       
tomcat-lib.noarch                       7.0.54-1.el7                   CD       
tomcat-servlet-3.0-api.noarch           7.0.54-1.el7                   CD       
tomcat-webapps.noarch                   7.0.54-1.el7                   CD       
tomcatjss.noarch                        7.1.0-5.el7                    CD

生产环境中部署java应用程序时最好使用普通用户,这里测试环境就用root了

我们看一下webapps目录下的应用程序目录组织结构---这些组织结构是特定的
[root@node1 webapps]# pwd
/usr/local/apache-tomcat-8.0.23/webapps
[root@node1 webapps]# tree manager/
manager/
├── images
│   ├── add.gif
│   ├── asf-logo.gif
│   ├── code.gif
│   ├── design.gif
│   ├── docs.gif
│   ├── fix.gif
│   ├── tomcat.gif
│   ├── update.gif
│   └── void.gif
├── index.jsp
├── META-INF
│   └── context.xml
├── status.xsd
├── WEB-INF
│   ├── jsp
│   │   ├── 401.jsp
│   │   ├── 403.jsp
│   │   ├── 404.jsp
│   │   ├── connectorCiphers.jsp
│   │   ├── sessionDetail.jsp
│   │   └── sessionsList.jsp
│   └── web.xml
└── xform.xsl
Java WebAPP 组织结构:
    有特定的组织形式、层次型的目录结构;主要包含了servlet代码文件、JSP页面文件、类文件、部署描述符文件等;
        /usr/local/tomcat/webapps/app1/
    /: webapp的根目录;
        WEB-INF/:当前webapp的私有资源目录,通常存放当前webapp自用的web.xml;
        META-INF/:当前webapp的私有资源目录,通常存放当前webapp自用的context.xml;
        classes/: 此webapp的私有类;
        lib/: 此webapp的私有类,被打包为jar格式类;
        index.jsp:webapp的主页
    webapp归档格式:
        .war:webapp;
        .jar:EJB的类;
        .rar:资源适配器;
        .ear:企业级应用程序;
示例:手动添加一个测试应用程序:
1、创建webapp特有的目录结构;
    mkdir -pv myapp/{lib,classes,WEB-INF,META-INF}
    #可以复制一个context.xml到某个应用程序的META-INF目录,这个配置文件专服务于此应用程序。以避免修改全局的配置文件造成全局影响
2、提供webapp各文件;myapp/index.jsp内容如下:
        <%@ page language="java" %>
        <%@ page import="java.util.*" %>
        <html>
            <head>
                <title>JSP Test Page</title>
            </head>
            <body>
                <% out.println("Hello, world."); %>
            </body>
        </html>

测试:

技术分享

查案work目录,发现生成了java程序相关文件
[root@node1 apache-tomcat-8.0.23]# tree work
work
└── Catalina
    └── localhost
        ├── docs
        ├── examples
        ├── host-manager
        ├── manager
        ├── myapp
        │   └── org
        │       └── apache
        │           └── jsp
        │               ├── index_jsp.class
        │               └── index_jsp.java
        └── ROOT
            └── org
                └── apache
                    └── jsp
                        ├── index_jsp.class
                        └── index_jsp.java

14 directories, 4 files
cat work/Catalina/localhost/myapp/org/apache/jsp/index_jsp.java可以查看这些java代码

部署(deployment)webapp相关的操作:
    deploy:部署,将webapp的源文件旋转于目标目录、配置tomcat服务器能够基于context.xml文件中定义的路径来访问此webapp; 将其特有类通过class loader装载至tomcat;
    有两种方式:
    自动部署:auto deploy
    手动部署:
    1、冷部署:把webapp复制到指定位置,而后才启动tomcat;
    2、热部署:在不停止tomcat的前提下进行的部分:
    部署工具:manager、ant脚本、tcd(tomcat client deployer)等;
        undeploy:反部署,停止webapp,并从tomcat实例拆除其部分文件和部署名;
        stop:停止,不再向用户提供服务;
        start:启动处于“停止”状态的webapp;
        redeploy:重新部署;

tomcat的主配置文件结构:
<server attribute="value" attribute2="value">
    <service>
        <connector />
        <connector />
        <engine >
            <host name="">
            </host>
            <host name="">
            </host>
            <host name="">
                 <context />
                 <context />                        
            </host>                                        
        </engine>
    </service>
</server>
自定义Host及Context示例:编辑server.xml加入如下内容
    <Host name="web1.lee.com" appBase="/data/webapps/" unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="ROOT" reloadable="true">
            <Valve className="org.apache.catalina.valves.RemoteAddrValve"
                deny="172\.16\.100\.100"/>
        </Context>
        <Context path="/shop" docBase="shopxx" 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>


本文出自 “明天过后” 博客,请务必保留此出处http://leeyan.blog.51cto.com/8379003/1707385

tomcat基础

原文:http://leeyan.blog.51cto.com/8379003/1707385

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!