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高并发和多线程的关系
“高并发和多线程”总是被一起提起,给人感觉两者好像相等,实则 高并发 ≠ 多线程 多线程是完成任务的一种方法,高并发是系统运行的一种状态,通过多线程有助于系统承受高并发状态的实现. 高并发是一种系 ...
- Git的简单操作
一.Git安装 windows下,可在在git官网下载(https://git-scm.com/downloads) 也有360提供的git(http://baoku.360.cn/soft/show ...
- idou老师教你学Istio: 如何用Istio实现K8S Egress流量管理
本文主要介绍在使用Istio时如何访问集群外服务,即对出口流量的管理. 默认安装的Istio是不能直接对集群外部服务进行访问的,如果需要将外部服务暴露给 Istio 集群中的客户端,目前有两种方案: ...
- 本科毕业平均年薪 30 万!经济寒冬挡不住 AI 人才的火热!
互联网行业遭遇寒冬,企业纷纷裁员缩招,而 BAT 和硅谷明星公司对 AI 人才的投入却并不见放缓.为争夺相关人才,给应届毕业生开出的平均年薪高达 30 万. 而 TensorFlow 作为当下最流行的 ...
- Daily Scrumming* 2015.12.8(Day 1)
一.团队scrum meeting照片 二.今日总结 姓名 WorkItem ID 工作内容 签入链接以及备注说明 江昊 任务942 学习使用github,在github上建立组织并将所有队员纳入, ...
- Linux内核分析(第二周)
操作系统是如何工作的? 一.总结:三大法宝 1.存储程序计算机 + 函数调用堆栈 + 中断机制 2.堆栈:C语言程序运行时候必须的一个记录调用路径和参数的空间(函数调用框架/提供局部变量/传递参数/保 ...
- RYU 灭龙战 first day
RYU 灭龙战 first day 前言 由于RYU翻译过来是龙的意思,此次主题就叫灭龙战吧 灵感来源 恶龙的三位真火-问题所在 参照了官方文档的基本操作 笔者以此执行 一个终端里 sudo mn - ...
- 第九周PSP&进度条
PSP 一.表格: D日期 C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 11月11号 讨论 讨论beta发布 09:00 09:54 1 ...
- Node.js使用UDP通讯
Node.js 的 dgram 模块可以方便的创建udp服务,,以下是使用 dgram模块创建的udp服务和客户端的一个简单例子. 一.创建 UDP Server var dgram = requir ...
- Linux 备份 文件夹的权限 然后在其他机器进行恢复
Study From https://www.cnblogs.com/chenshoubiao/p/4780987.html 用到的命令 getfacl 和 setfacl 备份 getfacl -R ...