一、 软件安装
- 安装Apache
配置yum源,安装软件yum install zlib zlib-devel yum install httpd
- 安装Tomcat
在官方网站http://tomcat.apache.org/ 下载tomcat的二进制文件。这次使用的tomcat版本是7.0.92,下载后的压缩包文件名为apache-tomcat-7.0.92.tar.gz,把此安装包传到服务器,解压到/usr/local目录下,即可完成tomcat的安装。 - 安装JDK
在tomcat的运行环境下,JDK是必不可少的,tomcat只是一个Servlet/JSP容器,需要JDK提供底层的操作。
下载JDK软件,此次下载的版本是JDK1.8,安装包名为jdk-8u191-linux-x64.gz,将安装包传到服务器并解压到/usr/local目录下。
通过命令可以查看JDK版本:[root@test ~]# /usr/local/jdk1.8.0_191/bin/java -version java version "1.8.0_191" Java(TM) SE Runtime Environment (build 1.8.0_191-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
- 安装JK模块
下载JK源码包,此次下载的版本是1.2.46,源码包文件名为tomcat-connectors-1.2.46-src.tar.gz,将此安装包解压后也放到/usr/local目录下。
安装步骤如下:
[root@test native]# yum install libtool autoconf #yum安装所需要的依赖库文件
[root@test native]# ./buildconf.sh
[root@test native]# ./configure
[root@test native]# make
[root@test native]# make install
此时默认会在apache安装目录下的modules目录下生成一个mod_jk.so文件。如果没有,需要手动拷贝。
二、 Apache与Tomcat配置
- Apache的配置
Apache主要配置文件为http.conf,此时编辑此文件[root@test www]# vim /etc/httpd/conf/httpd.conf
主要配置如下:
ServerRoot "/etc/httpd" #用于指定守护进程httpd的运行目录 Timeout 300 #定义客户端与服务端程序连接的超时间隔 Listen 80 #监听端口 LoadModule jk_module modules/mod_jk.so #加载jk模块 User apache Group apache #设定httpd的用户和组 DocumentRoot "/var/www/html" #指定网页的存放路径,默认到此路径寻找网页 ServerAdmin root@localhost #当Apache出现问题时,会发信到这个邮箱 ErrorLog "logs/error_log" #指定错误日志存放的位置
JkWorkersFile /etc/httpd/conf/workers.properties
JkMountFile /etc/httpd/conf/uriworkermap.properties
JkLogFile /etc/httpd/logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
##针对JK连接器属性的设置。其中1~2行指定Tomcat workers配置文件以及对网页的过滤规则,第3行指定JK模块的日志输出文件,第4行指定日志的输出级别,最后一行指定日志的输出格式。
NameVirtualHost *:80
#表示开启虚拟主机。如果开启虚拟主机,上面设置的DocumentRoot指令配置失效,以虚拟主机中的DocumentRoot为主。
<VirtualHost *:80>
ServerAdmin webdata@123.net
DocumentRoot /webdata/www
ServerName test
ErrorLog logs/error_log
CustomLog logs/access_log common
JkMountFile conf/uriworkermap.properties
<Directory "/webdata/www">
Options -Indexes +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
#上面这段信息添加一个虚拟主机,其中不同的虚拟主机通过不同的ServerName来区分。每个虚拟主机用<VirtualHost>标签设置。
#ServerAdmin:表示虚拟主机的管理员邮箱地址
#DocumentRoot:表示虚拟主机站点文件路径
#ServerName:虚拟主机的站点域名
#ErrorLog:指定虚拟主机站点错误日志输出文件
#CustomLog:指定虚拟主机站点访问日志输出文件
#JkMountFile:指定对此虚拟主机的URL映射文件
- Tomacat的配置
server.xml是Tomcat的主要配置文件。为了支持与Apache的整合,在Tomcat中也需要配置虚拟主机。在server.xml配置文件中找到默认的<Host>标签,在此标签结尾,添加如下内容:<Host name="hcd" debug="0" appBase="/webdata/www" unpackWARs="true"> <Context path="" docBase="" debug="1"/>
#name:指定虚拟主机名字
#debug:指定日志输出级别
#appBase:存放Web应用程序的基本目录
#unpackWARs:Tomcat是否会将WAR文件解压,true表示解压运行里面的应用程序;false表示不解压直接运行。
- 配置Tomcat启动脚本
tomcat在启动的时候会去查找JDK的安装位置,因此需要配置系统环境变量。
在catalina.sh脚本中添加如下内容:JAVA_HOME=/usr/local/jdk1.8.0_191 export JAVA_HOME
并在环境变量文件中添加如下内容:
export JAVA_HOME=/usr/local/jdk1.8.0_191
- 创建Tomcat worker
定义Tomcat worker的方法是在apache的conf目录下编写一个名为workers.properties的属性文件,使其作为Apache的插件来发挥作用。编写内容如下:worker.list=tomcat1 #定义名字 worker.tomcat1.port=8009 # 主机监控的端口 worker.tomcat1.host=localhost #监听AJP13请求的Tomcat worker主机地址 worker.tomcat1.type=ajp13 #定义work类型的格式 worker.tomcat1.lbfactor=1 #当tomcat用作负载均衡是,使用此属性,表示负载均衡权值
- URL过滤规则文件uriworkermap.properties
用来指定哪些URL由Tomcat来处理,下面是映射文件的内容:/*=tomcat1 !/*.jpg=tomcat1 !/*.gif=tomcat1 !/*.png=tomcat1 !/*.bmp=tomcat1 !/*.html=tomcat1 !/*.htm=tomcat1 !/*.swf=tomcat1 !/*.css=tomcat1 !/*.js=tomcat1
/=tomcat1表示所有的请求都交给tomcat1处理,
!/.png=tomcat1表示在根目录下,所有以“*.png”结尾的文件都不有JK处理,也就是让Apache处理,其它类似。
三. 测试
这里将/usr/local/tomcat-7.0.92/webapps/ROOT/目录下的所有文件和/usr/local/tomcat-7.0.92/webapps/docs目录拷贝到/webdata/www/目录下,然后启动Apache和tomcat服务:[root@test conf]# /usr/local/tomcat-7.0.92/bin/startup.sh [root@test conf]# systemctl start httpd
启动完毕后,在浏览器输入服务器IP地址,如果能访问tomcat默认的JSP页面,表示tomcat解析成功。接着,在/webdata/www/目录下建立一个test.html的静态页面,内容如下:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Administrator</title> </head> <body> apache and tomcat successful, This is html pages! </body> </html>
通过访问网页,出现如下内容:
apache and tomcat successful, This is html pages!
这表示静态网页也可以解析成功。
转载于:https://blog.51cto.com/10940080/2332234