您的位置:首页 > 运维架构 > Tomcat

Tomcat简单的使用和配置

2014-05-10 16:57 531 查看
   Tomcat简介 
   Tomcat主要由servlet和jsp组成,是精简版的 JAVA EE;servlet是服务器端的一个容器,当用户请求应用程序的时候,servlet接收客户端的请求,并把的请求的类文件或源文件在虚拟机中运行一次,把运行的结果封装成html语言,返回给用户.so,servlet需要有java开发环境(JDK).但是servlet有个原生性的缺陷,就是所有的html语言都要硬编码进java语言中.这就催生了jsp,jsp也是一个java类,jsp在前端入口处,他可以识别html语言中嵌入的jsp代码,从而把jsp程序交给后端的servlet处理,而html语言则不原封不懂的显示.而在jsp中执行这类操作的工具叫做jsper.
  Apache早期也在研究可以运行jsp的JAVA EE Application Servers,叫做catanila,后来sun公司把自己的研究JAVA EE Application Servers无偿捐献给了Apache,Apache命名为Tomcat,所以现在的Tomcat中可以见到很多catanila的身影

1.首先要安装JDK,java的运行环境
1: rpm -ivh jdk-7u9-linux-x64.rpm
2: rpm -ql jdk

2.导出java的环境变量
  
1: vim /etc/profile.d/java.sh
2: export JAVA_HOME=/usr/java/latest
3: export PATH=$JAVA_HOME/bin:$PATH
4:  . /etc/profile.d/java.sh           #重读配置文件
5: java -version 验证环境变量是否配置成功

3.安装配置tomcat,建议把tomcat的所有文件改成普通用户的权限,使用普通用户运行

1: tar xf apache-tomcat-7.0.42.tar.gz -C /usr/local
2: ln -sv apache-tomcat-7.0.42/ tomcat
3: vim /usr/local/tomcat/conf/server.xml:重要的配置文件
4: /usr/local/tomcat/temp/  :编译后的jsp文件
5: /usr/local/tomcat/webapps/ : 默认网页文件
6: /usr/local/tomcat/bin : 一些可执行脚本

4.导出tomcat的环境变量

1: vim /etc/profile.d/tomcat.sh
2: export CATALINA_HOME=/usr/local/tomcat
3: export PATH=$CATALINA_HOME/bin:$PATH
4: . /etc/profile.d/tomcat.sh
5: catalina.sh version  : 运行此命令,如果成功则表示导出环境变量成功


5.启动查看tomcat

1: catalina.sh configtest 测试语法是否有误
2: catalina.sh start | stop停止
3:  ss -tpnl
4:  jps  显示主机运行的java程序及程序的id号,如果显示Bootstrap说明运行成功

6.访问IP:8080





7.查看tomcat的配置文件

 

1: vim /usr/local/tomcat/conf/server.xml
2:
3:     <server>--------------------顶级组件,最外层,一个运行在JVM的tomcat实例,以线程运行,一个进程多个线程
4:     <service>-------------------顶级组件,容器类组件,服务,将连接器关联至引擎的.一个service只能有一个引擎,可以有多个连接器
5:     <connector />---------------连接器组件,接受用户请求至tomcat,监听套接字的,可定义多个
6:     <engine >-------------------容器类组件,核心组件,处理connector接受的请求,解析编译处理这些请求,一般叫catalina引擎,可以有多个,一个实现一组服务,一个引擎可以有多个连接器,如下图
7:     <Realm>---------------------可以用于任何容器类的组件中,关联一个用户认证库,实现认证和授权
8:      <Realm>--------------------Realm中可以签到Realm
9:      </Realm>-------------------
10:     </Realm>--------------------
11:     <host>----------------------容器类组件,定义虚拟主机的
12:       <context>-----------------容器类组件,有点类似alias,定义一个应用程序的部署,最内存的容器,一个context代表一个web程序,配置context的主要目的是指定对应webapp的根目录
13:       </context>----------------
14:     </host>---------------------
15:     <host>----------------------可以有多个,一个host就一个虚拟主机,一般只支持基于主机名的虚拟主机
16:       <value />-----------------嵌套类组件,阀门,拦截请求的,并将其转至对应的webapp之前进行某种操作:如记录日志 access log value(记录日志) remote address filter value(基于ip做访问控制) 可以用于任何容器中
17:     </host>---------------------
18:     </engine>-------------------
19:     </service>------------------
20:     </server>-------------------





大致图如下





上图,三个容器类的组件:engine,host,context

8.修改和增加tomcat监听的端口

1: vim /usr/local/tomcat/conf/server.xml
2:
3: <Connector port="80" protocol="HTTP/1.1"
4:                connectionTimeout="20000"
5:                redirectPort="8443" />
6:     <Connector port="8080" protocol="HTTP/1.1"
7:                connectionTimeout="20000"
8:                redirectPort="8443" />
9:  redirectPort="8443" ------如果是https就转到8443端口

9.为tomcat提供Sysv服务脚本

vim /etc/rc.d/init.d/tomcat

chkconfig --add tomcat

#!/bin/sh

# Tomcat init script for Linux.

#

# chkconfig: 2345 96 14

# description: The Apache Tomcat servlet/JSP container.

# JAVA_OPTS='-Xms64m -Xmx128m'    #堆的最小和最大使用空间,在服务器这值通常很大,几十G

JAVA_HOME=/usr/java/lastest

CATALINA_HOME=/usr/local/tomcat

export JAVA_HOME CATALINA_HOME

case $1 in

start)

  exec $CATALINA_HOME/bin/catalina.sh start ;;

stop)

  exec $CATALINA_HOME/bin/catalina.sh stop;;

restart)

  $CATALINA_HOME/bin/catalina.sh stop  

  sleep 2

  exec $CATALINA_HOME/bin/catalina.sh start ;;

*)

  echo "Usage: `basename $0` {start|stop|restart}"

  exit 1

  ;;

esac

exec 在当前shell中执行脚本,所以不会在脚本中继续往下运行了

10.Connector连接器的可选参数

1:  <Connector port="80" address="127.0.0.1" maxThreads="200" connectonTimeout="6000"  protocol="HTTP/1.1"
2:                connectionTimeout="20000"
3:                redirectPort="8443" />
4: <Connector port="8443"
5:     maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
6:     enableLookups="false" acceptCount="100" debug="0" scheme="https" secure="true"
7:     clientAuth="false" sslProtocol="TLS" />
8:

以后自己定义的时候可能还要加上证书的路径

1) address:指定连接器监听的地址,默认为所有地址,即0.0.0.0;

2) maxThreads:支持的最大并发连接数,默认为200,很重要的一个参数;

3) port:监听的端口,默认为0;

4) protocol:连接器使用的协议,默认为HTTP/1.1,定义AJP协议时通常为AJP/1.3;

5) redirectPort:如果某连接器支持的协议是HTTP,当接收客户端发来的HTTPS请求时,则转发至此属性定义的端口;

6) connectionTimeout:等待客户端发送请求的超时时间,单位为毫秒,默认为60000,即1分钟;

7) enableLookups:是否通过request.getRemoteHost()进行DNS查询以获取客户端的主机名;默认为true,解析的非常慢,为了提高性能,可以设置为false;

8) acceptCount:设置等待队列的最大长度;通常在tomcat所有处理线程均处于繁忙状态时,新发来的请求将被放置于等待队列中;一旦maxThreads满了,就开始排队

11.engine

<Engine name="Catalina" defaultHost="localhost">  定义默认虚拟主机的

12.host

<Host name="localhost"  appBase="webapps"

            unpackWARs="true" autoDeploy="true">

unpackWARs="true"   自动展开打包文件

autoDeploy="true"  tomcat启动时,自动部署

13.自定义虚拟主机

1: <Host name="www.a.com"  appBase="/www/webapp"
2:              unpackWARs="true" autoDeploy="true">
3:                 <Context path="" docBase="/www/webapp" reloadable="true"/>
4:                 <Context path="/ldf" docBase="test" reloadable="true"/>
5:          <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
6:                 prefix="a.com_access_log." suffix=".txt"
7:                 pattern="%h %l %u %t "%r" %s %b" />
8:             </Host>


appBase=="" 如果不指绝对路径,则表示相对路径

Context path="" 访问的uri路径

docBase="/www/webapp"  表示相对于根目录的其他目录,如果就是根目录,就把根目录重写一遍,网页文件的存放位置

docBase="test" 相对于/www/webapp/test,经测试也可以当别名使用(uri使用)

网页文件测试页

1: <%@ page language="java" %>
2: <%@ page import="java.util.*" %>
3: <html>
4:   <head>
5:     <title>JSP test page.</title>
6:   </head>
7:   <body>
8:    <% out.println("Hello,world!"); %>
9:   </body>
10: </html>


14.server status





1: vim /usr/local/tomcat/conf/tomcat-users.xml
2: <role rolename="manager-gui"/>
3: <user username="tomcat" password="tomcat" roles="tomcat,manager-gui"/>


15.Host Manager





1: vim /usr/local/tomcat/conf/tomcat-users.xml
2: <role rolename="manager-gui"/>
3: <role rolename="admin-gui"/>
4: <user username="tomcat" password="tomcat" roles="tomcat,manager-gui,admin-gui"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: