Apache 与 Tomcat 整合
目标
准备
Apache的根目录为: E:/Apache_Server
Web项目路径为: E:/Apache_Server/www(即Apache的DocmentRoot路径) tomcat的根目录为: E:\Apache_tomcat
127.0.0.1 one.test.com two.test.com
tomcat配置
<Connector connectionTimeout="20000" port="8081" protocol="HTTP/1.1" redirectPort="8443" compressableMimeType="text/html,application/xml,application/json,application/javascript,text/css,text/plain" />
(2)设置AJP端口,这里设为8009。此端口在后续需配置到Apache中, Apache通过该端口将任务转发到Tomcat
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" compressableMimeType="text/html,application/xml,application/json,application/javascript,text/css,text/plain" />
在tomcat/conf/server.xml中,在Engine节点下增加两个Host节点。Host节点中配置项目的访问域名name、项目路径docBase等信息,如下:
<Host appBase="webapps" autoDeploy="true" name="one.test.com" unpackWARs="true">
<Context path="" docBase="E:/Apache_Server/www/project_one" debug="0" reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/>
</Host> <Host appBase="webapps" autoDeploy="true" name="two.test.com" unpackWARs="true">
<Context path="" docBase="E:/Apache_Server/www/project_two" debug="0" reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/>
</Host>
Apache配置
Listen 8082
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
workers.tomcat_home=E:\Apache_tomcat
workers.java_home=D:\Java1.8\jdk
ps=/
worker.list=worker_one,worker_two worker.worker_one.port=8009
worker.worker_one.host=localhost
worker.worker_one.type=ajp13 worker.worker_two.port=8009
worker.worker_two.host=localhost
worker.worker_two.type=ajp13
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
Include conf/extra/httpd-vhosts.conf
在 conf/extra/httpd-vhosts.conf 文件中,添加虚拟主机的配置信息。用JkMount指定哪些内容将转发给Tomcat处理。
<VirtualHost *:8082>
DocumentRoot "E:\Apache_Server\www\project_one"
ServerName one.test.com
ServerAlias one.test.com JkMount /servlet/* worker_one
JkMount /*.jsp worker_one
JkMount /*.htm worker_one
JkMount /*.html worker_one
JkMount /*.do worker_one
JkMount /* worker_one <Directory "E:\Apache_Server\www\project_one">
Options -Indexes +FollowSymLinks +Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost> <VirtualHost *:8082>
DocumentRoot "E:\Apache_Server\www\project_two"
ServerName two.test.com
ServerAlias two.test.com JkMount /servlet/* worker_two
JkMount /*.jsp worker_two
JkMount /*.htm worker_two
JkMount /*.html worker_two
JkMount /*.do worker_two
JkMount /* worker_two <Directory "E:\Apache_Server\www\project_two">
Options -Indexes +FollowSymLinks +Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
配置到此就完成了。
最后,重启Tomcat、重启Apache即可
测试
1、测试jsp网页
在apache的DocmentRoot路径下,增加web.jsp文件,内容如下:
<%@page language="java" import="java.util.*" %>
Stay hungry Stay foolish !!!
Now the time is: <%out.println(new Date());%>
浏览器分别访问Apache和Tomcat:local:8081/wel.jsp、local:8082/wel.jsp,都能看到相同的运行结果,表示整合完成。
2、接口测试
在project_one项目中,增加一个接口,随便返回点东西,如下:
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/json; charset=utf-8");
PrintWriter out = null;
try{
out = response.getWriter();
out.write("nothing!");
out.flush();
}catch(IOException e){
e.printStackTrace();
}
}
相应的web.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>testInferface</servlet-name>
<servlet-class>com.api.testInferface</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>testInferface</servlet-name>
<url-pattern>/testInferface</url-pattern>
</web-app>
布署上去之后,下面两个链接能对它进行访问,因为one.test.com指向了该项目。
http://one.test.com:8081/testinferface
http://one.test.com:8082/testinferface
而下面这两个则访问不了
http://two.test.com:8081/testinferface
http://two.test.com:8082/testinferface
Over!
Apache 与 Tomcat 整合的更多相关文章
- Apache与Tomcat整合
Apache与Tomcat整合 一 Apache与Tomcat比较联系 apache支持静态页,tomcat支持动态的,比如servlet等. 一般使用apache+tomcat的话,apache ...
- Apache与Tomcat整合(转)
一 Apache与Tomcat比较联系 apache支持静态页,tomcat支持动态的,比如servlet等. 一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由 ...
- linux下apache和tomcat整合
一 Apache与Tomcat比较联系 apache支持静态页,tomcat支持动态的,比如servlet等. 一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由 ...
- debian下Apache和tomcat整合(使用apt工具)
最近部署web系统,需要使用tomcat处理和Apache整合使用,tomcat处理JSP,Apache处理静态资源.开始不知道怎么操作,在网上查阅资料走了很多弯路.完成时候,发现其实很简单,现将配置 ...
- Apache和Tomcat整合(一个Apache 不同域名处理多个不同业务)
一.简介 在项目中,几乎任何一个项目都包括静态资源和动态请求两大部分.特别对于门户网站这样的项目,静态内容资源会更多,我们使用一般的 Tomcat 部署时,Tomcat 对静态资源的处理能力比较慢,至 ...
- [WebServer] Linux下Apache与Tomcat整合的简单方法
Apache与Tomcat比较联系 apache支持静态页,tomcat支持动态的,比如servlet等. 一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由to ...
- Apache与Tomcat整合的配置
下载jk连接器地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/ 把jk连接器即“mod_j ...
- apache和tomcat有什么不同,为什么要整合apache 和tomcat
1. Apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet容器,是Apache的扩展.2. Apache和Tomcat都可以做为独立的web服务器来运行,但是Ap ...
- Apache与Tomcat的整合
一 Apache与Tomcat比较联系 apache支持静态页,tomcat支持动态的,比如servlet等. 一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由 ...
随机推荐
- python面试题(四)
一.数据类型 1.字典 1.1 现有字典 dict={‘a’:24,‘g’:52,‘i’:12,‘k’:33}请按字典中的 value 值进行排序? sorted(dict.items(),key=l ...
- Flutter - 快速创建Stateless和Stateful组件
1. 快速创建Stateless组件 输入stle,回车 class extends StatelessWidget { @override Widget build(BuildContext con ...
- npm install的几种命令形式区别
转自未来与传说.jigetage 我们在使用 npm install 安装模块的时候 ,一般会使用下面这几种命令形式: npm install moduleName # 安装模块到项目目录下 npm ...
- mark一下岗位
一.中国移动杭州研发中心——测试开发工程师 https://campusresume.zhaopin.com/resume/14375/1 等内推信息 岗位描述:作为产品的质量守护者,在全面理解被 ...
- kudu 存储引擎简析
本文由 网易云发布. 1 概述 本文主要介绍kudu底层存储引擎的数据组织方式,先看整体结构如下: 一张表会分成若干个tablet , 每个tablet 包括MetaData 元信息及若干个RowS ...
- 【SE】Week1 : 四则运算题目生成器批改器程序总结
用户需求详见:http://www.cnblogs.com/jiel/p/4810756.html 1)PSP表格分析(预计耗时): PSP2.1 Personal Software Process ...
- c# WndProc事件 消息类型
转载:https://www.cnblogs.com/idben/p/3783997.html WM_NULL = 0x0000; WM_CREATE = 0x0001;应用程序创建一个窗口 WM_D ...
- 剑指offer:数值的整数次方
题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 解题思路: 一开始直接用一个for循环做连乘,测了一下,发现这个指数可能是负 ...
- Tomcat下bootstrap启动分析
"C:\Program Files\Java\jdk1.7.0\bin\javaw.exe" -agentlib:jdwp=transport=dt_socket,suspend= ...
- information_schema系列十一
1: INNODB_CMP 和INNODB_CMP_RESET 这两个表存储的是关于压缩INNODB信息表的时候的相关信息, Column name Description PAGE_SIZE Com ...