1.Apache与Tomcat比较联系
apache支持静态页,tomcat支持动态的,比如servlet等。 一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由tomcat来处理的。 apache可以支持php\cgi\perl,但是要使用java的话,你需要tomcat在apache后台支撑,将java请求由apache转发给tomcat处理。 apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行。 2.整合的好处是:
如果客户端请求的是静态页面,则只需要Apache服务器响应请求
如果客户端请求动态页面,则是Tomcat服务器响应请求
因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销
先安装LAMP环境·······略
实现环境:
Linux:Centos6.5
Apache:httpd-2.2.16.tar.gz
Cmake:cmake-2.8.10.2.tar.gz
Mylsq:mysql-5.6.10.tar.gz
Php:php-5.3.28.tar.gz
所用到的软件:
Tomcat:apache-tomcat-7.0.64.tar.gz
Tomcat连接器:tomcat-connectors-1.2.32-src.tar.gz
JDK:jdk-7u67-linux-x64.tar.gz
Tomcat连接数据库:mysql-connector-java 5.1.17
1.安装JDK
·解压并移动JDK
1
2
| tar zxvf jdk-8u31-linux-i586.tar.gz
mv jdk1.8.0_31 /usr/local/jdk
|
·修改环境变量
vim /etc/profile.d/java.sh
1
2
3
4
5
| JAVA_HOME=/usr/local/jdk
JAVA_BIN=/usr/local/jdk/bin
JRE_HOME=/usr/local/jdk/jre
PATH=$PATH:/usr/local/jdk/bin:/usr/local/jdk/jre/bin
CLASSPATH=/usr/local/jdk/jre/lib:/usr/local/jdk/lib:/usr/local/jdk/jre/lib/charsets.jar
|
·初始化
1
| . /etc/profile.d/java.sh
|
·测试是否配置成功
2.安装Tomcat
·解压并移动
1
2
| tar zxvf apache-tomcat-7.0.57.tar.gz
mv apache-tomcat-7.0.57 /usr/local/tomcat
|
·启动Tomcat
1
2
3
| cd /usr/local/tomcat/bin
./shutdown.sh #停止tomcat
./startup.sh #启动tomcat
|
·测试tomcat
网站输入ip:8080 出现tomcat默认页面
3.整合tomcat和Apache #需要借助apache-tomcat的连接器
·解压tomcat连接器
1
| tar zxvf tomcat-connectors-1.2.32-src.tar.gz
|
·指定Apache的apxs路径
1
2
3
| cd tomcat-connectors-1.2.32-src/native
./configure --with-apxs=/usr/local/apache2/bin/apxs
make
|
·添加mod_jk模块
1
2
3
4
5
| tar zxvf jakarta-tomcat-connectors-1.2.15-src.tar.gz
cd jakarta-tomcat-connectors-1.2.15-src
./configure --with-apxs=/usr/local/apache2/bin/apxs
make
cp ./apache-2.0/mod_jk.so /usr/local/apache2/modules/
|
·Apache整合tomcat
1
2
3
4
5
6
| vim /usr/local/apache2/conf/httpd.conf
在DirectoryIndex上添加nindex.jsp
<IfModule dir_module>
DirectoryIndex index.jsp index.php index.html
</IfModule>
|
·增加关于加载mod_jk的语句
·在/usr/local/apache2/conf下建立配置文件mod_jk.conf
指出mod_jk模块工作所需要的工作文件workers.properties的位置, jk日志放在哪里, jk日志级别, 选择日志格式, JkOptions送SSL关键尺寸显示, JkRequestLogFormat设置要求的格式 , 将所有servlet 和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| vim /usr/local/apache2/conf/mod_jk.conf
JkWorkersFile /usr/local/apache2/conf/workers.properties
###### Where to put jk logs
JkLogFile /usr/local/apache2/logs/mod_jk.log
###### Set the jk log level [debug/error/info]
JkLogLevel info
###### Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
###### JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
###### JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
###### 将所有servlet 和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理
JkMount /servlet/* worker1
JkMount /*.jsp worker1
JkMount /*.do worker1
|
·在/usr/local/apache2/conf下建立配置文件workers.properties
定义一个工人叫worker1 ajp13和类型
1
2
3
4
5
6
7
8
9
10
11
| vim /usr/local/apache2/conf/workers.properties
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.prot=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300
|
·找到tomcat配置文件路径,编辑server.xml
1
| vim /usr/local/tomcat/conf/server.xml
|
·在<host>段加入
1
2
| <Context path="" docBase="/usr/local/apache2/htdocs" debug="0" reloadable="ture"
crossContext="ture"/>
|
·编辑一个index.jsp的网页
1
2
3
4
5
| vim /usr/local/apache2/htdocs/index.jsp
<%
out.println("hello tomcat ");
%>
|
·重启tomcat和apache
1
2
3
4
| /usr/local/apache2/bin/apachectl restart
cd /usr/local/tomcat/bin
./shutdown.sh
./startup.sh
|
·整合完成,测试
输入ip地址,出现hello tomcat
4.连接数据库
jsp使用mysql-connector-java 5.1.17连接mysql
·解压zip包
1
| unzip mysql-connector-java 5.1.17.zip
|
·把mysql-connector-java 5.1.17-bin.jar 放到tomcat目录下的lib目录
1
| cp mysql-connector-java-5.1.17-bin.jar /usr/local/tomcat/lib/
|
·编写一个测试页面 test_mysql.jsp,如果页面显示OK就标明可以连接到数据库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| vim /usr/local/apache2/htdocs/test_mysql.jsp
<%@ page language="java" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.sql.*" %>
<%
String driverName="com.mysql.jdbc.Driver";
String userName="root";
String userPasswd="123";
String dbName="test";
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
try
{
Connection connection=DriverManager.getConnection(url);
out.println(" O K !");
connection.close();
}
catch( Exception e )
{
out.println( "connent mysql error:" + e );
}
%>
|
·重启tomact和Apache,属于ip/test_mysql.jsp 出现OK 则连接成功
|