各门户网站的个人博客服务经常采用类似 http://seamankwok.iteye.com 的域名,今天我在自己本地测试了一下apache的域名转向
一、网络试验环境准备:
将seamankwok.iteye.com 路由到本地,禁止访问外网,修改window的路由表hosts,增加一行127.0.0.1 seamankwok.iteye.com
PS:若有DNS服务器环境的话可以配置*.iteye.com -> 127.0.0.1,因为我是WIN XP,这里只试验apache的域名转向
二、配置apache + tomcat
1、下载安装apache_2.0.59-win32-x86-no_ssl.msi
2、下载安装jakarta-tomcat-5.0.28.zip
3、下载mod_jk-apache-2.0.29.so,并拷贝到apache安装目录的modules下
4、d:\Apache\Apache2\bin\Apache.exe -t 测试
5、在tomcat安装目录conf下新增workers.properties文件
workers.tomcat_home=D:\car-tomcat-5.0.28 #让mod_jk模块知道Tomcat的位置
workers.java_home=D:\j2sdk1.4.2_09\jre #让mod_jk模块知道jre的位置
ps=\
worker.list=ajp13 #模块版本
worker.ajp13.port=8009 #工作端口,若没占用则不用修改
worker.ajp13.host=seamankwok.iteye.com #本机,对应的Apache主机
worker.ajp13.type=ajp13 #类型
worker.ajp13.lbfactor=1 #代理数,不用修改
6、在apache安装目录conf下编辑httpd.conf,加入以下代码
#设置Apache与Tomcat之间的连接,让Apache遇到jsp文件时,在后台将其交由Tomcat去处理
LoadModule jk_module modules/mod_jk-apache-2.0.29.so
#此处mod_jk的文件为你下载的文件
JkWorkersFile "D:/car-tomcat-5.0.28/conf/workers.properties"
#指定tomcat监听配置文件地址
JkLogFile "D:/car-tomcat-5.0.28/logs/mod_jk2.log"
#指定日志存放位置
JkLogLevel info
#设置虚拟主机
《VirtualHost seamankwok.iteye.com》<virtualhost seamankwok.iteye.com=""></virtualhost>
ServerAdmin localhost
DocumentRoot E:/webcontent
#您的站点项目所在路径,应与tomcat中的目录设置相同
ServerName seamankwok.iteye.com
DirectoryIndex index.html index.htm index.jsp
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
JkMount /servlet/* ajp13
#让Apache支持对servlet传送,用以Tomcat解析
JkMount /*.jsp ajp13
#让Apache支持对jsp传送,用以Tomcat解析
JkMount /*.do ajp13
#让Apache支持对.do传送,用以Tomcat解析
《/VirtualHost》
7、在tomcat根应用下建一个目录seamankwok,目录下新增一个index.jsp
8、启动tomcat和apache,测试http://seamankwok.iteye.com 与 http://localhost:8080/ 是否相同
三、配置rewrite
1、编辑httpd.conf 取消LoadModule rewrite_module modules/mod_rewrite.so前的注释
2、编辑httpd.conf,在VirtualHost<virtualhost></virtualhost>中加入以下代码
RewriteEngine on
RewriteCond %{HTTP_HOST} ^[a-zA-Z0-9]+\.iteye.com$
RewriteRule ^/?$ /%{HTTP_HOST}
RewriteRule ^/([a-zA-Z0-9]+)\.javaeye\.com/?$ /$1/index.jsp [R]
简单的rewrite已经成功了,接下来可以慢慢学习RewriteRule 的各种语法