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的处理是由 ...
随机推荐
- IP 解析器(IpParser) test 和 生产环境 实现
注意:之前我maven居然没有引入 StringUtils 的包,然后引入了一个路径类似,但其实包路径不一样的 StringUtils ,居然是划掉的状态,像这样 StringUtils ,这个其实不 ...
- ECMAScript6——异步操作之Promise
Promise对象的参数为一个回调函数,这个回调函数有两个参数,分别是resolve, reject(这俩参数的名字可任取),resolve,reject分别表示异步操作执行成功后的回调函数和异步操作 ...
- LOJ#6503.「雅礼集训 2018 Day4」Magic[容斥+NTT+启发式合并]
题意 \(n\) 张卡牌 \(m\) 种颜色,询问有多少种本质不同的序列满足相邻颜色相同的位置数量等于 \(k\). 分析 首先本质不同不好直接处理,可以将同种颜色的卡牌看作是不相同的,求出答案后除以 ...
- TFS2012独占签出设置
说明:TFS2012默认是可以多人签出同一个文件.如果要设为独占签出,请看下面操作步骤 1. 2. 3. 然后选择工作区---编辑---高级.最后如下图,在位置那里选择服务器. END
- Partition4:增加分区
在关系型 DB中,分区表经常使用DateKey(int 数据类型)作为Partition Column,每个月的数据填充到同一个Partition中,由于在Fore-End呈现的报表大多数是基于Mon ...
- C#用Infragistics 导入导出Excel(一)
最近项目中有数据的导入导出Excel的需求,这里做简单整理. 公司用的是Infragistics的产品,付费,不需要本地安装Office. 有需要的朋友可以下载 Infragistics.2013.2 ...
- 微信小程序实现各种特效实例
写在前面 最近在负责一个微信小程序的前端以及前后端接口的对接的项目,整体上所有页面的布局我都已经搭建完成,里面有一些常用的特效,总结一下,希望对大家和我都能有所帮助 实例1:滚动tab选项卡 先看一下 ...
- node基础-文件系统-文件写操作
文件操作频率最高的就是读跟写.nodejs的文件的读取API在<node基础-文件系统-读取文件>里已经简单介绍过,本文就简单介绍下nodejs的文件写API. nodejs的文件操作均提 ...
- ECS centos7 使用外部邮件服务商的465加密端口
ECS centos7 使用外部邮件服务商的465加密端口发送邮件. 1.修改/etc/mail.rc 文件中添加以下的 set smtp="smtps://smtp.163.com:465 ...
- Nextcloud13私有云盘安装指南
一.环境说明: ※操作系统版本CentOS 7.5 Minimal-1804 ※操作系统版本已经使用163 YUM源 ※ Nextcloud版本 13.05 ※ 数据库使用MariaDB,安装在同一台 ...