假设:
项目需要做 URL Rewrite,不想用 UrlRewriteFilter 集成到应用程序里去,于是就选用一些 Web Server 来做,后来选了 Apache,但是又懒,不想每台开发机器都去做配置,因为确实很麻烦,规则变了又要每台开发机器都去同步,如果是 Linux 还好一点,可以 mount 一下。
有四台开发机器,IP 分别为:
192.168.1.10(Apache)
192.168.1.20(A同事)
192.168.1.30(B同事)
192.168.1.40(C同事)。
在192.168.1.10上部署一个 Apache,做 Rewrite 规则,然后统一分发到另外三台机器上。可是每位同事的开发机器上的项目的版本有可能不一致,而且还要根据各自手头上的版本来调试。
也就是说:A同事启动了应用程序,请求192.168.1.10的 Apache,享受了一了Rewrite 规则,然后被分发回A同事的 Tomcat
既然这样,每位同事都要弄个标识才行,端口是不错的选择:
A同事:1020
B同事:1030
C同事:1040
OK,标识分好了,就开始做配置了,Apache 的版本采用2.2,结合几个Module:
mod_rewrite
mod_proxy
mod_proxy_ajp/mod_proxy_http
在 make/make install Apache 前的 configure 加入几个参数:
./configure --enable-rewrite --enable-proxy --enable-proxy-ajp --enable-proxy-http
到 httpd.conf 了,当然少不了的是把 Module 们 load 进来:
LoadModule proxy_module modules/mod_proxy.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
把几位同事对应的端口也配进去:
#A同事
Listen 1020
#B同事
Listen 1030
#C同事
Listen 1040
既然每位同事都有一台开发机器,那么就给他们每人多配一台虚拟机器吧:
#A同事
<VirtualHost *:1020></VirtualHost>
#B同事
<VirtualHost *:1030></VirtualHost>
#C同事
<VirtualHost *:1040></VirtualHost>
差点忘了proxy,Oops。都配上 mod_proxy_ajp 吧,免得麻烦。
在这个时候,C同事的孩子气来了,他说他一定要 mod_proxy_http,。。。。。
#顺被带上RewriteRule
#A同事
<VirtualHost *:1020>
ProxyPass / ajp://192.168.1.20:8009/
ProxyPassReverse / ajp://192.168.1.20:8009/
RewriteEngine On
#RewriteRule... ...
</VirtualHost>
#B同事
<VirtualHost *:1030>
ProxyPass / ajp://192.168.1.30:8009/
ProxyPassReverse / ajp://192.168.1.30:8009/
RewriteEngine On
#RewriteRule... ...
</VirtualHost>
#C同事
<VirtualHost *:1040>
ProxyPass / http://192.168.1.40:8080/
ProxyPassReverse / http://192.168.1.40:8080/
RewriteEngine On
#RewriteRule... ...
</VirtualHost>
个人感觉 mod_proxy 的风格比 mod_jk 好。 但是有一点很不爽,如果我想 /topics 目录下的 html 都由 Apache 解析,jsp都要由 Tomcat 解析。开始想着 “ProxyPass /topics/*.html !” 就行,后来屡试不爽,…#&¥@#×(&%×,竟然不支持通配符。
在 Tomcat 的 server.xml 里,AJP代理的,就对应回 AJP Connector 的 port,Http代理的,就对应回 Http Connector 的 port,另外,如果想在程序里用 request.getServerName() 取到代理的 Name、用request.getServerPort() 取到代理的 Port,就在 Connector 里配置 proxyName 和 proxyPort 吧。
OK,可以测试一下了:
A同事在地址栏敲入:http://192.168.1.10:1020
B同事在地址栏敲入:http://192.168.1.10:1030
C同事在地址栏敲入:http://192.168.1.10:1040
各取其需。。。。。。。可以写 Rewrite Rule 去了..
分享到:
- 2008-11-20 21:54
- 浏览 2142
- 评论(9)
- 论坛回复 / 浏览 (9 / 6888)
- 查看更多
相关推荐
PHP开发环境(apache_2.2.4-win32-x86-no_ssl,mysql-5.5.20-win32,php-5.6.32-Win32-VC11-x86),下载之后解压就行,教程地址http://blog.csdn.net/zx1091515459/article/details/78449581
3、点击d:/php/setup 中对应操作系统的安装和卸载程序就可以完成php+mysql+apache集成开发环境的安装和卸载; 4、d:/www 为站点的根目录(可在配置文件中更改); 5、为方便同时开发asp的朋友,本系统的...
3、点击d:/php/setup 中对应操作系统的安装和卸载程序就可以完成php+mysql+apache集成开发环境的安装和卸载; 4、d:/www 为站点的根目录(可在配置文件中更改); 5、为方便同时开发asp的朋友,本系统的...
本文将详尽解析如何在Linux及Windows环境下搭建基于Apache、Python与Django的开发环境,为开发者提供全面的技术指导。 ### Linux环境下的Apache + Python + Django开发环境搭建 #### 1. 安装Apache 在Linux环境中...
本文将详细介绍apxs的安装和使用方法,以及在Windows环境中进行Apache模块开发的相关知识点。 **apxs的介绍** apxs是Apache HTTP Server的命令行工具,主要负责模块的编译、链接和安装。在Unix/Linux系统中,apxs...
PHPStudy 是一个集成了 PHP、Apache、MySQL 等多种开发工具的集成开发环境,非常适合开发者学习和测试 web 应用程序。DVWA 的部署可以帮助开发者更好地理解 web 应用程序的安全性,并提高开发者的安全意识和防御...
3、点击d:/php/setup 中对应操作系统的安装和卸载程序就可以完成php+mysql+apache集成开发环境的安装和卸载; 4、d:/www 为站点的根目录(可在配置文件中更改); 5、为方便同时开发asp的朋友,本系统的...
本篇文章将详细介绍如何手动安装和配置Apache、PHP以及MySQL,以便构建一个完整的PHP开发环境。通过手动安装而非使用集成环境如WAMP或XAMPP,不仅可以更好地理解每个组件的工作原理,还能提高问题诊断能力。 #### ...
【Apache+Tomcat 配置JSP开发环境】 在Java Web开发中,Apache和Tomcat是常见的服务器组合,用于处理动态网页,特别是JSP(JavaServer Pages)的应用。Apache主要作为一个HTTP服务器,而Tomcat是一个Java Servlet...
搭建apache python django MySQL_Web开发环境 搭建apache python django MySQL_Web开发环境
通过这个程序,用户可以快速地在自己的计算机上设置一个本地开发环境,以便进行PHP编程和测试。 首先,Apache服务器的安装和配置涉及到以下几个关键步骤: 1. **下载与安装**:访问Apache官方网站,选择适合操作...
NiFi 的开发指南包括: NiFi 的环境搭建、FlowFile 的处理流程、Processor 的开发、Connection 的配置、Error Handling 等。 Apache NiFi 是一个功能强大、灵活的数据集成工具,具有广泛的应用场景和发展前景。
标签“源码”和“工具”暗示了配置过程中可能涉及查看和修改配置文件的源代码,以及使用各种软件工具,如集成开发环境(IDE)和命令行工具。 压缩包中的文件“搭建Eclipse PHP开发环境 - JackZhou的专栏 - CSDN博客...
在IT行业中,搭建PHP开发环境是一项基础且重要的工作,它为开发者提供了运行和测试PHP代码的平台。"phpnow" 是一个便捷的工具,能够帮助用户快速构建PHP开发环境,无需复杂的配置步骤。本篇文章将深入讲解如何使用...
Java开发环境是软件开发人员构建Java应用程序的基础,它包括了多个关键组件,这些组件在本资源包中均有提供。以下是对各个组件的详细介绍: 1. **Eclipse**:Eclipse是一款开源的集成开发环境(IDE),专为Java...
首先,需要安装mod_python,以便将Python集成到Apache中。可以使用以下命令安装: sudo apt-get install libapache2-mod-python 2. 配置mod_python 接下来,需要配置mod_python。在/etc/apache2/mods-available/...
只需运行此exe文件,按照向导提示进行安装,即可在Windows机器上快速建立一个完整的开发环境。 总结起来,WampApache提供了一站式的解决方案,使得开发者能够在本地环境中快速搭建Web服务,进行PHP、MySQL以及IIS和...