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]