前言
Apache Web Server 和 Tomcat 都是Apache家族的产品,也都是Apache的顶级项目
前者是web服务器,后者是JavaEE的应用服务器(轻量级,或者称之为Servlet容器更合适)
web服务器擅长解析静态文件,比如html文件;Tomcat则擅长解析动态文件比如jsp
两者整合本身就具有“天然”性,因为都源自Apache家族的产品,而且Web服务和应用服务器整合也是自然的
所谓整合简单理解就是:当web服务器遇到客户端的动态请求,比如 http://localhost:8080/demo/dynamic.jsp
就把请求转发给Tomcat处理,应用服务器处理完之后把结果返回给web服务器,再由web服务器将本次响应结果返回到客户端
安装Apache Web Server 和 Tomcat
(1)安装Apache Web Server
apt-get install apache2
如果你没有root帐号权限,那么 sudo apt-get install apache2
(2)安装Tomcat
apt-get install tomcat7
apt-get install tomcat7-admin
同理,没root权限就
sudo sudo apt-get install tomcat7
sudo apt-get install tomcat7-admin
这种方式安装apache和tomcat,环境变量都会自动设置好,我本机这两个应用所在的目录分别是
/etc/apache2/
/usr/lib/tomcat7/ (因为我tomcat7是早就单独安装好的,目录和这种安装方式有点区别)
接下来,可以验证下你的apache和tomcat是否安装成功
http://localhost/ 能访问,在页面显示:It works! 说明安装成功
http://localhost:8080/ 能访问,看到你熟悉的tomcat管理页面,说明tomcat安装成功
这两个应用的启动和停止方式也挺简单
apache:/etc/init.d/apache2 start 和 /etc/init.d/apache2 stop
tomcat:/etc/init.d/tomcat7 start 和 /etc/init.d/tomcat7 stop
对于tomcat,你也可以进入tomcat的bin目录,通过startup.sh 和 shutdown.sh来启动、关闭:
/usr/lib/tomcat7//bin/startup.sh
/usr/lib/tomcat7//bin/shutdown.sh
安装Apache和Tomcat的连接器
注意:linux平台下的连接器是 mod_jk.so 文件,可以到apache的网站下载这个mod_jk文件
下载地址是:https://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/
但这里选择自动安装的方式,来下载这个连接器:
apt-get install libapache2-mod-jk
修改Apache和Tomcat配置
(1)创建workers.properties文件,路径 /etc/apache2/workers.properties,内容如下
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
注意第一个配置:worker.list=worker1 这里的 worker1是自定义名称,待会要使用
(2)修改 jk.conf 配置,路径 /etc/apache2/mods-available/jk.conf
将 JkWorkersFile 节点值修改为:JkWorkersFile /etc/apache2/workers.properties
(3)修改apache的站点配置:/etc/apache2/sites-enabled/000-default
在该文件的 </VirtualHost> 节点结束前加上mod_jk的配置:
...
...
</Directory>
JkMount /*.jsp worker1 # 这里是处理所有jsp请求
</VirtualHost>
当然你可以修改这种规则 ,比如:只想处理demo工程下的动态请求
JkMount /demo* worker1
最后你可以重启下Apache Web Server 和 Tomcat了
sudo /etc/init.d/tomcat7 restart
sudo /etc/init.d/apache2 restart
测试整合效果
来试试效果,尝试不带8080端口来访问你的web应用就知道了,比如:http://localhost/demo/test.jsp
如果能正常访问,说明web服务器和应用服务器整合好了
因为默认情况下:是要加8080的,也就是 http://localhost:8080/demo/test.jsp,否则会报404错误
除非你一开始就把Tomcat的8080端口改成了80端口访问。。。