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
tar zxvf jdk-8u31-linux-i586.tar.gz mv jdk1.8.0_31 /usr/local/jdk
·修改环境变量
vim /etc/profile.d/java.sh
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
·初始化
. /etc/profile.d/java.sh
·测试是否配置成功
java -version
2.安装Tomcat
·解压并移动
tar zxvf apache-tomcat-7.0.57.tar.gz mv apache-tomcat-7.0.57 /usr/local/tomcat
·启动Tomcat
cd /usr/local/tomcat/bin ./shutdown.sh #停止tomcat ./startup.sh #启动tomcat
·测试tomcat
网站输入ip:8080 出现tomcat默认页面
3.整合tomcat和Apache #需要借助apache-tomcat的连接器
·解压tomcat连接器
tar zxvf tomcat-connectors-1.2.32-src.tar.gz
·指定Apache的apxs路径
cd tomcat-connectors-1.2.32-src/native ./configure --with-apxs=/usr/local/apache2/bin/apxs make
·添加mod_jk模块
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
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来处理
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和类型
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
vim /usr/local/tomcat/conf/server.xml
·在<host>段加入
<Context path="" docBase="/usr/local/apache2/htdocs" debug="0" reloadable="ture" crossContext="ture"/>
·编辑一个index.jsp的网页
vim /usr/local/apache2/htdocs/index.jsp <% out.println("hello tomcat "); %>
·重启tomcat和apache
/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包
unzip mysql-connector-java 5.1.17.zip
·把mysql-connector-java 5.1.17-bin.jar 放到tomcat目录下的lib目录
cp mysql-connector-java-5.1.17-bin.jar /usr/local/tomcat/lib/
·编写一个测试页面 test_mysql.jsp,如果页面显示OK就标明可以连接到数据库
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 则连接成功