xuyaxiu 发表于 2018-11-30 12:26:00

tomcat 的基本概念和安装配置

  本章目录:
1、tomcat的概述
2、tomcat的架构详解
3、部署apache-tomcat+JDK+mysql+java应用(论坛)
4、整合apache+apache-tomcat实现动静页面分离
5、测试动静分离是否成功:

1、tomcat及JSP的概述:
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器(*.jsp)。

一般用于小型企业的jsp页面,因为一个tomcat最大连接数一般在1024以下,处理能力有限。

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。

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

这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache、nginx等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。


常用JSP WEB服务器:
1、WebLogic--是BEA公司的产品,是目前应用最广泛的Web服务器,支持JavaEE规范,而且不断的完善以适应新的开发要求.
2、WebSphere--IBM公司的产品,支持JavaEE规范
3、Jboss--大名鼎鼎的红帽的产品,原来属于开源组织Jboss,后被红帽收购。支持JavaEE规范,免费
4、Tomcat--在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:Tomcat,该服务器支持全部JSP以及Servlet规范


2、tomcat的架构详解

1)安装tomcat+jdk(jvm)

安装JDK
# tar xf jdk-7u15-linux-x64.tar.gz -C /opt
# cd /opt
# ln -s /opt/jdk1.7.0_15/ /opt/jdk


安装tomcat
# tar tar xf apache-tomcat-7.0.37.tar.gz -C /opt/.
# ln -s /opt/apache-tomcat-7.0.37/ /opt/tomcat

编译tomcat的启动命令,简化tomcat的管理
# cd /opt/tomcat/bin/
# tar xzvf jsvc.tar.gz
# cd jsvc-src/
# chmod +x configure
# ./configure--with-java=/opt/jdk && make
# cp jsvc /opt/tomcat/bin

创建启动脚本并启动tomcat服务:
# cd /usr/local/src/tomcat/init.d/
# cp -a tomcat /etc/init.d/tomcat
# chkconfig --add tomcat
# chkconfig tomcat on
# service tomcat start
# netstat -tnlp |grep jsvc
tcp      0      0 :::8009                     :::*                        LISTEN      18414/jsvc.exec   --缓存端口
tcp      0      0 :::8080                     :::*                        LISTEN      18414/jsvc.exec   --对外端口


2)Tomcat目录详解:
|---bin --存放启动和关闭tomcat脚本;
|---conf--存放不同的配置文件(server.xml和web.xml);
|---doc--存放Tomcat文档;
|---lib/--存放Tomcat运行需要的库文件(JARS);
|---logs--存放Tomcat执行时的LOG文件;
|---src--存放Tomcat的源代码;
|---webapps--Tomcat的主要Web发布目录(包括应用程序示例);
|---work--存放jsp编译后产生的class文件;




3)Tomcat 的总体结构

http://blog.运维网.com/e/u261/themes/default/images/spacer.gif  


4)Tomcat Server的结构图

http://blog.运维网.com/e/u261/themes/default/images/spacer.gif  


5)conf/server.xml目录结构:

      
      
    className指定实现org.apache.catalina.Server接口的类.默认值为org.apache.catalina.core.StandardServer
2>port指定Tomcat监听shutdown命令端口.终止服务器运行时,必须在Tomcat服务器所在的机器上发出shutdown命令.该属性是必须的.
3>shutdown指定终止Tomcat服务器运行时,发给Tomcat服务器的shutdown监听端口的字符串.该属性必须设置

测试:
telnet localhost 8005   
输入:SHUTDOWN
结果:关闭tomcat


元素
该元素由org.apache.catalina.Service接口定义,它包含一个元素,以及一个或多个,这些Connector元素共享用同一个Engine元素

http://blog.运维网.com/e/u261/themes/default/images/spacer.gif  

1>className 指定实现org.apahce.catalina.Service接口的类.默认为org.apahce.catalina.core.StandardService
2>name定义Service的名字


元素
一个“Connector”(连接器)代表一个请求被接收和应答所需要的端点。每个连接器通过相关的“Container”(容器)处理请求。默认情况下,一个非SSL的HTTP/1.1的连接器被绑定在端口8080。你也可以通过根据后面的使用说明并取消第二个连接器入口的注释,在端口8443上建立一个SSL HTTP/1.1的连接器。

http://blog.运维网.com/e/u261/themes/default/images/spacer.gif  

Coyote HTTP/1.1 Connector

className:
该Connector的实现类是org.apache.coyote.tomcat4.CoyoteConnector

port:
在端口号8080处侦听来自客户browser的HTTP1.1请求.如果把8080改成80,则只要输入 http://localhost/即可

protocol:
设定Http协议,默认值为HTTP/1.1

minSpareThreads:
该Connector先创建5个线程等待客户请求,每个请求由一个线程负责

maxSpareThread:
设定在监听端口的线程的最大数目,这个值也决定了服务器可以同时响应客户请求的最大数目.默认值为200

acceptCount:
当现有线程已经达到最大数时,为客户请求排队.当队列中请求数超过设定值时,后来的请求返回Connection refused错误

redirectport:
当客户请求是https时,把该请求转发到端口8443去

enableLookups:
如果设为true,表示支持域名解析,可以把IP地址解析为主机名.WEB应用中调用request.getRemoteHost方法返回客户机主机名.默认值为true

connectionTimeout:
定义建立客户连接超时的时间.如果为-1,表示不限制建立客户连接的时间



元素
每个Service元素只能有一个Engine元素.处理在同一个中所有元素接收到的客户请求.由org.apahce.catalina.Engine接口定义.

http://blog.运维网.com/e/u261/themes/default/images/spacer.gif  

1>className
指定实现Engine接口的类,默认值为StandardEngine

2>defaultHost
指定处理客户的默认主机名,在中的子元素中必须定义这一主机

3>name
定义Engine的名字

在可以包含如下元素, , ,


元素

http://blog.运维网.com/e/u261/themes/default/images/spacer.gif  
1> appBase :
指定虚拟主机的目录,可以指定绝对目录,也可以指定相对于的相对目录.如果没有此项,默认为/webapps. 它将匹配请求和自己的Context的路径,并把请求转交给对应的Context来处理

2> autoDeploy:
如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用

3> unpackWARs:
如果此项设置为true,表示把WEB应用的WAR文件先展开为开放目录结构后再运行.如果设为false将直接运行为WAR文件

4> alias:
指定主机别名,可以指定多个别名

5> deployOnStartup:
如果此项设为true,表示Tomcat服务器启动时会自动发布appBase目录下所有的Web应用.如果Web应用中的server.xml没有相应的元素,将采用Tomcat默认的Context (/opt/tomcat/webapps)


6)配置默认主页
主页:web应用中web.xml:
   
      index.html
      index.htm
      index.jsp
   


7) Tomcat Server处理一个http请求的过程
假设来自客户的请求为: http://localhost:8080/wsota/wsota_index.jsp -->tomcat(ip)

1) 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得
2) Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应
3) Engine获得请求localhost/wsota/wsota_index.jsp,匹配它所拥有的所有虚拟主机Host
4) Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机)
5) localhost Host获得请求/wsota/wsota_index.jsp ,匹配它所拥有的所有Context
6) Host匹配到路径为/wsota的Context(如果匹配不到就把该请求交给路径名为""的Context去处理)
7) path="/wsota"的Context获得请求/wsota_index.jsp,在它的mapping table中寻找对应的servlet
8) Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类
9) 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法
10)Context把执行完了之后的HttpServletResponse对象返回给Host
11)Host把HttpServletResponse对象返回给Engine
12)Engine把HttpServletResponse对象返回给Connector
13)Connector把HttpServletResponse对象返回给客户browser


3、部署apache-tomcat+JDK+mysql+java应用(论坛)

http://blog.运维网.com/e/u261/themes/default/images/spacer.gif  

http://blog.运维网.com/e/u261/themes/default/images/spacer.gif  

--apache前端调试器(直接解析静态页面/把动态页面发送后端中间件服务器)
--tomcat接收动态页面的请求,呼叫jdk来编译动态页面
--JDK编译java程序(页面),调度mysql


####################以下步骤如果前面已经完成,可以不用需要做了############################
1.安装JDK
# tar xf jdk-7u15-linux-x64.tar.gz -C /opt
# cd /opt
# ln -s /opt/jdk1.7.0_15/ /opt/jdk


2.安装tomcat(二进制版)
# tar tar xf apache-tomcat-7.0.37.tar.gz -C /opt/
# ln -s /opt/apache-tomcat-7.0.37/ /opt/tomcat


创建启动脚本并启动tomcat服务:
# cd /usr/local/src/tomcat/init.d/
# cp -a tomcat /etc/init.d/tomcat
# chkconfig --add tomcat
# chkconfig tomcat on
# service tomcat start
# netstat -tnlp |grep jsvc
tcp      0      0 :::8009                     :::*                        LISTEN      18414/jsvc.exec   --缓存端口
tcp      0      0 :::8080                     :::*                        LISTEN      18414/jsvc.exec   --对外端口

# ls /opt/tomcat/ -l|grep ^d
drwxr-xr-x 3 root root4096 Mar 30 19:26 bin
drwxr-xr-x 2 root root4096 Mar 30 19:33 conf--配置文件所在的目录
drwxr-xr-x 2 root root4096 Mar 30 19:23 lib--库文件
drwxr-xr-x 2 root root4096 Mar 30 19:33 logs--日志
drwxr-xr-x 3 root root4096 Mar 30 19:33 temp
drwxr-xr-x 7 root root4096 Jul 222008 webapps--默认网页根目录
drwxr-xr-x 3 root root4096 Mar 30 19:33 work

测试tomcat是否能看到默认页面:
# firefox http://server:8080
#####################以上步骤如果前面已经完成,可以不用需要做了############################



3.创建数据库,数据用户

# yum -y install mysql-server mysql


初始化配置:
mysql> delete from mysql.user where user='';
Query OK, 2 rows affected (0.00 sec)

mysql> update mysql.user set password=password('123');
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3Changed: 3Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

为java论坛创建两个数据库及对应数据用户:
# mysql -uroot -p123
mysql> create database java1;
Query OK, 1 row affected (0.05 sec)

mysql> grant all on java1.* to user01@'localhost' identified by '123';
Query OK, 0 rows affected (0.10 sec)

mysql> create database java2;
Query OK, 1 row affected (0.07 sec)

mysql> grant all on java2.* to user02@'localhost' identified by '123';
Query OK, 0 rows affected (0.03 sec)

4、上传JAVA论坛的页面:
# mkdir /webroot/bbs1.uplooking.com -p
# mkdir /webroot/bbs2.uplooking.com -p
# cd /root/tomcat
# unzip JavaCenter_Home_2.0_Source_UTF8.zip
# cp -r JavaCenter_Home_2.0_Source_UTF8/source/WebRoot/* /webroot/bbs1.uplooking.com


# unzip ejforum-2.3.zip
# cd ejforum-2.3/ejforum/
# mv * /webroot/bbs2.uplooking.com -p



5、创建第二个tomcat的虚拟主机:
# vim /opt/tomcat/conf/server.xml
   
      
      
      
      
      
      
      

      
      
      
      
   



# vim /etc/hosts
192.168.0.1       bbs1.uplooking.com bbs2.uplooking.com



7、测试两个论坛看是否可以访问(看到页面表示成功):
# firefox http://bb1.uplooki专门搬运动态页面给ng.com:8080/install--安装论坛
# firefox http://bbs2.uplooking.com:8080/         --安装请看详细信息




4、整合apache+apache-tomcat实现动静页面分离
apache + tomcat 实现动静分离,统一入口
apache --解析静态页面
tomcat--解析动态页面

client(html/jsp)-->apache--> mod_jk.so-->(tomcat+jdk)

# yum -y install httpd
# vim /etc/httpd/conf/httpd.conf
LoadModule jk_module modules/mod_jk.so --加载一个mod_jk模块
Include conf/mod_jk.conf--模块对应配置文件
JkWorkersFile conf/workers.properties--定义一个机器人,专门搬运动态页面给tomcat解析
JkMountFile conf/uriworkermap.properties--定义哪些属于动态页面的类型

创建mod_jk模块:
# cp mod_jk-1.2.28-httpd-2.2.X.so /etc/httpd/modules/mod_jk.so

# vim /etc/httpd/conf/mod_jk.conf
JkLogLevel info
JkLogFile logs/jk.log
JkShmFile logs/jk-runtime-status
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkRequestLogFormat "%w %V %T"
JkOptions+ForwardKeySize +ForwardURICompat -ForwardDirectories


# vim /etc/httpd/conf/workers.properties
workers.tomcat_home=/opt/tomcat
workers.java_home=/opt/jdk
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=1

# vim /etc/httpd/conf/uriworkermap.properties--动静分离的依据
/*.jsp*=worker1--所有的JSP页面都交给tomcat
/forum-*.html=worker1   --- 伪静态页面(一个jsp页面)

!/*.gif worker1
!/*.jpg worker1
!/*.png worker1
!/*.ico worker1
!/*.css worker1
!/*.js worker1
!/*.htm worker1
!/*.html worker1
!/*.asp worker1
!/*.aspx worker1
!/*.txt worker1
!/*.swf worker1
!/*.flv worker1
!/*.php worker1


定义apache的虚拟主机,必须跟tomcat的虚拟主机相对应
# vim /etc/httpd/conf/httpd.conf
DirectoryIndex index.html index.html.var index.jsp

NameVirtualHost *:80

    DocumentRoot /webroot/bbs1.uplooking.com
    ServerName bbs1.uplooking.com
    ErrorLog logs/bbs1.uplooking.com-error_log
    CustomLog logs/bbs1.uplooking.com-access_log combined
    JkMountFile conf/uriworkermap.properties


    DocumentRoot /webroot/bbs2.uplooking.com
    ServerName bbs2.uplooking.com
    ErrorLog logs/bbs2.uplooking.com-error_log
    CustomLog logs/bbs2.uplooking.com-access_log combined
    JkMountFile conf/uriworkermap.properties



    Options None
    AllowOverride None
    Order allow,deny
    Allow from all







# service httpd restart


5测试动静分离是否成功:
1、关闭tomcat服务器,看否还可能访问和登录
看到的结果无法打开空间首页,但单独访问表态文件时是没有问题的。

2、故意把apache的虚拟主机网页目录指不存在的目录,测试访问论坛;
看到的结果是所有静态页面都无法显示,但tomcat显示的信息是正常的。

  

  

  *********************************************************
  文本安装详细步骤
  

  

  

  tomcat的架构详解
---- Server

1)安装tomcat+jdk(java)

1> 下载
# lftp 192.168.0.254
lftp 192.168.0.254:~> cd notes/project/software/
lftp 192.168.0.254:/notes/project/software> mirror tomcat/
Total: 49 directories, 364 files, 0 symlinks                                    
New: 364 files, 0 symlinks
135847627 bytes transferred in 5 seconds (24.27M/s)
lftp 192.168.0.254:/notes/project/software> exit

2> 安装java程序
# tar -xf /root/tomcat/jdk-7u15-linux-x64.tar.gz -C /opt/
# mv /opt/jdk1.7.0_15/ /opt/jdk


2> 解压到opt
# tar xf /root/tomcat/apache-tomcat-7.0.37.tar.gz -C /opt/
# mv /opt/apache-tomcat-7.0.37/ /opt/tomcat



# find /opt/tomcat/ -maxdepth 1 -type d
/opt/tomcat/      --程序家目录
/opt/tomcat/temp--临时文件
/opt/tomcat/lib   --库文件 *.jar
/opt/tomcat/conf--配置文件
/opt/tomcat/logs--日志目录
/opt/tomcat/bin   --命令
/opt/tomcat/work--中间结果集
/opt/tomcat/webapps--帮助手册和jsp页面的家目录




# export JAVA_HOME=/opt/jdk/--定义环境变量

--启动tomcat
# /opt/tomcat/bin/startup.sh
Using CATALINA_BASE:   /opt/tomcat    --程序家目录
Using CATALINA_HOME:   /opt/tomcat    --软件家目录
Using CATALINA_TMPDIR: /opt/tomcat/temp--临时文件
Using JRE_HOME:      /opt/jdk/         --java程序
Using CLASSPATH:       /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar--内部库文件

# netstat -tnlp |grep :80
tcp      0      0 ::ffff:127.0.0.1:8005       :::*                        LISTEN      2451/java         
tcp      0      0 :::8009                     :::*                        LISTEN      2451/java         
tcp      0      0 :::8080                     :::*                        LISTEN      2451/java


--访问
http://192.168.0.1:8080/


8005 内部管理端口
8009 ajp协议 连接内部程序与库文件
8080 http协议 数据的交互

--关闭tomcat
# telnet localhost 8005
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SHUTDOWN
Connection closed by foreign host.




# /opt/tomcat/bin/startup.sh   --启动
# /opt/tomcat/bin/shutdown.sh--关闭

--声明变量
# vim /opt/tomcat/bin/startup.sh      --在第二行加入以下内容
CATALINA_BASE=/opt/tomcat
CATALINA_HOME=/opt/tomcat
JRE_HOME=/opt/jdk
export CATALINA_BASE CATALINA_HOME JRE_HOME

# vim /opt/tomcat/bin/shutdown.sh   --写入跟上面同样的内容
CATALINA_BASE=/opt/tomcat
CATALINA_HOME=/opt/tomcat
JRE_HOME=/opt/jdk
export CATALINA_BASE CATALINA_HOME JRE_HOME

---------------方式1以java程序的方式启动 ------------------------



---------------方式2以jsvc程序的方式启动 ------------------------建议使用jsvc方式


# cd /opt/tomcat/bin/
# tar xf commons-daemon-native.tar.gz
# cd commons-daemon-1.0.13-native-src/unix/
# ./configure --with-java=/opt/jdk/
# make
# cp jsvc /opt/tomcat/bin/ -a



创建启动脚本
# cp /root/tomcat/tomcat-init.sh /etc/init.d/tomcat
# chmod +x /etc/init.d/tomcat

# vim /etc/init.d/tomcat
JAVA_HOME=/opt/jdk
CATALINA_HOME=/opt/tomcat
CATALINA_BASE=/opt/tomcat
TOMCAT_USER=root


# service tomcat start

ot@tomcat ~]# netstat -tnlp |grep :80
tcp      0      0 :::8009                     :::*                        LISTEN      3532/jsvc.exec      
tcp      0      0 :::8080                     :::*                        LISTEN      3532/jsvc.exec

# chkconfig --add tomcat
# chkconfig tomcat on

--访问
http://192.168.0.1:8080/

# ls /opt/tomcat/webapps/ROOT/index.jsp






--配置文件


# ll /opt/tomcat/conf/*.xml
-rw-------. 1 root root   1394 2月13 2013 /opt/tomcat/conf/context.xml
-rw-------. 1 root root   6435 2月13 2013 /opt/tomcat/conf/server.xml
-rw-------. 1 root root   1530 2月13 2013 /opt/tomcat/conf/tomcat-users.xml
-rw-------. 1 root root 162905 2月13 2013 /opt/tomcat/conf/web.xml



/opt/tomcat/conf/context.xml ---页面家目录
WEB-INF/web.xml
/opt/tomcat/conf/web.xml    --- tomcat识别与处理的页面 jsp|*.jsp|*.jspx
/opt/tomcat/conf/tomcat-users.xml--tomcat用户

/opt/tomcat/conf/server.xml   ---主配置文件


--开启控制端口
--内部库的目录





--资源
   




   --端口重定向 8443 tomcat加密端口


   --内部协议 连接servlet容器 (claess与缓存文件)


   
      
      
      


   

      ---日志的格式
      
   





name="localhost"= 域名
appBase="webapps"= /opt/tomcat/webapps/
unpackWARs="true"
如果此项设置为true,表示把WEB应用的WAR文件先展开为开放目录结构后再运行.如果设为false将直接运行为WAR文件
alias:
指定主机别名,可以指定多个别名
deployOnStartup:
如果此项设为true,表示Tomcat服务器启动时会自动发布appBase目录下所有的Web应用.如果Web应用中的server.xml没有相应的元素,将采用Tomcat默认的Context (/opt/tomcat/webapps)
autoDeploy:
如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用




conf/server.xml目录结构:

      
      
   确认是否安装apache-tomcat
# ls -d /opt/tomcat/
# netstat -tnlp |grep :80

2> 确认JDK程序是否存放
# ls -d /opt/jdk/


3> 安装数据库
# yum -y install mysql-server mysql
# service mysqld start

mysql> delete from mysql.user where user='';
mysql> update mysql.user set password=password('redhat')where user='root';
mysql> flush privileges;

--新建库与授权
mysql> create database java01 default charset utf8;
mysql> grant all on java01.* to 'runjava01'@'localhost' identified by '123456java01';




4> 下载java论坛页面
# cd /root/tomcat/
# unzip JavaCenter_Home_2.0_Source_UTF8.zip
# mkdir /webroot
# mv JavaCenter_Home_2.0_Source_UTF8/source/WebRoot/ /webroot/java01



5> 通过tomcat的虚拟主机发布页面

# vim /opt/tomcat/conf/server.xml
         eployOnStartup--找不到页面 寻找默认webapps
                      --页面家目录
      
      
# service tomcat restart

# echo "192.168.0.1 java01.uplooking.com" >> /etc/hosts

测试访问
# echo "192.168.0.1 java01.uplooking.com" >> /etc/hosts

安装java论坛
http://java01.uplooking.com:8080/install/




上传第二套java页面 /root/tomcat/ejforum-2.3.zip

解压页面
# unzip ejforum-2.3.zip
# mv ejforum-2.3/ejforum/ /webroot/java02

发布页面
# vim /opt/tomcat/conf/server.xml

      
            
      
      

# service tomcat restart


新建库与授权
# mysql -uroot -predhat
mysql> create database java02 default charset utf8;
mysql> grant all on java02.* to 'runjava02'@'localhost' identified by '123456java02';


修改页面的配置文件 连接数据库


# vim /webroot/java02/WEB-INF/conf/config.xml
       --注释掉默认的文本数据库 Hsqldb
      --开启Mysql数据 填写用户名与密码以及数据库名称
      



***导库***
# mysql -urunjava02 -p123456java02 java02< /root/tomcat/ejforum-2.3/install/script/easyjforum_mysql.sql





# echo "192.168.0.1 java02.uplooking.com" >> /etc/hosts

测试
# echo "192.168.0.1 java02.uplooking.com" >> /etc/hosts


http://java02.uplooking.com:8080/




***整合apache+apache-tomcat实现动静页面分离
apache + tomcat 实现动静分离,统一入口
    apache --解析静态页面
    tomcat--解析动态页面



client(html/jsp)-->apache--> mod_jk.so-->(tomcat+jdk)


1> 安装httpd
# yum -y install httpd

2> 在httpd中定义mod_jk模块的配置文件

202 LoadModule jk_module modules/mod_jk.so
203 Include conf/mod_jk.conf                        -模块对应配置文件
204 JkWorkersFile conf/workers.properties         --定义一个机器人,专门搬运动态页面给tomcat解析
205 JkMountFile conf/uriworkermap.properties      --定义哪些属于动态页面的类型


3> 创建mod_jk模块:
# cp /root/tomcat/mod_jk-1.2.28-httpd-2.2.X.so /usr/lib64/httpd/modules/mod_jk.so -a
# ls -d /usr/lib64/httpd/modules/mod_jk.so
/usr/lib64/httpd/modules/mod_jk.so

4> 定义jk.conf的配置文件 (如何连接tomcat|机器人|动态页面的类型列表)
vim /etc/httpd/conf/mod_jk.conf
JkLogLevel info
JkLogFile logs/jk.log
JkShmFile logs/jk-runtime-status
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkRequestLogFormat "%w %V %T"
JkOptions+ForwardKeySize +ForwardURICompat -ForwardDirectories

5> 定义机器人(专门搬运动态页面给tomcat解析)--机器人名称worker1
vim /etc/httpd/conf/workers.properties
workers.tomcat_home=/opt/tomcat
workers.java_home=/opt/jdk
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=1

6> 定义机器人worker1的页面解析列表那些属于apache解析 那些属于tomcat解析

# vim /etc/httpd/conf/uriworkermap.properties

/*.jsp*=worker1
/forum-*.html=worker1   --- 伪静态页面(一个jsp页面)

!/*.gif worker1
!/*.jpg worker1
!/*.png worker1
!/*.ico worker1
!/*.css worker1
!/*.js worker1
!/*.htm worker1
!/*.html worker1
!/*.asp worker1
!/*.aspx worker1
!/*.txt worker1
!/*.swf worker1
!/*.flv worker1
!/*.php worker1
!/*.mp3 worker1



7> 定义apache的虚拟主机,必须跟tomcat的虚拟主机相对应

# vim /etc/httpd/conf.d/java1.uplooking.conf
NameVirtualHost *:80

    ServerAdmin java01@uplooking.com
    DocumentRoot /webroot/java01
    ServerName java01.uplooking.com
    ErrorLog logs/java01.uplooking.com-error_log
    CustomLog logs/java01.uplooking.com-access_log combined
    JkMountFile conf/uriworkermap.properties-- 动静分离的依据列表

   
      AllowOverride None
      Options Indexes
      Order allow,deny
      Allow from all
   
# vim /etc/httpd/conf.d/java2.uplooking.conf

    ServerAdmin java02@uplooking.com
    DocumentRoot /webroot/java02
    ServerName java02.uplooking.com
    ErrorLog logs/java02.uplooking.com-error_log
    CustomLog logs/java02.uplooking.com-access_log combined
    JkMountFile conf/uriworkermap.properties

   
      AllowOverride None
      Options Indexes
      Order allow,deny
      Allow from all
   


8> 增加apache 能够识别index.jsp
DirectoryIndex index.html index.html.varindex.jsp


9> 启动
# service httpd restart
# chkconfig httpd on


10>访问
http://java01.uplooking.com/
http://java02.uplooking.com/



如何测试动静分离?
1> 如果将tomcat关闭静态的数据(图片)可以访问


# service tomcat stop

访问图片
http://java01.uplooking.com/data/avatar/noavatar_middle.gif

访问主页 失败 503Service Temporarily Unavailable--页面内部错误
http://java01.uplooking.com/space.jsp?do=home





2> 将apache虚拟主机的页面根目录指向新的目录
# mkdir /webtest
# vim /etc/httpd/conf.d/java1.uplooking.conf
    DocumentRoot /webtest
   

# service httpd restart
# service tomcat start


访问
http://java01.uplooking.com/space.jsp--能够登录用户


http://java01.uplooking.com/data/avatar/noavatar_middle.gif--访问图片失败
  




页: [1]
查看完整版本: tomcat 的基本概念和安装配置