Windows下Apache配合Tomcat实现动态二级域名

 
Windows下Apache配合Tomcat实现动态二级域名
发表于162 天前 ⁄ HttpServer, Tomcat暂无评论 ⁄ 被围观 116 views+

前面介绍了《Windows下安装Apache Http Server》和《Windows下Apache整合Tomcat》,本文将将以具体的示例来说明如何使用Apache配合Tomcat实现动态二级域名的设置。注意:本文是在前面两篇文章的基础上接着继续介绍,如果你还没有看前面的文章,请您先移步去看安装配置

1、泛域名解析

首先在域名服务器上设置域名的泛解析,例如:
www.pihai.me         123.456.789.0
*.pihai.me                123.456.789.0
本地测试可以通过在windows上通过设置C:\windows\system32\drivers\etc\hosts文件模拟域名解析过程。下面的配置均以pihai.me为例。

  1. 127.0.0.1      bbs.pihai.me   
  2.  127.0.0.1      blog.pihai.me   
  3. 127.0.0.1      test1.blog.pihai.me   
  4. 127.0.0.1      test2.blog.pihai.me  

2、修改httpd.conf文件进行转发配置
放开如下modules,在httpd.conf中找到下面的配置,去掉前面的注释“#”号

  1. LoadModule proxy_module modules/mod_proxy.so   
  2. LoadModule proxy_http_module modules/mod_proxy_http.so   
  3. LoadModule rewrite_module modules/mod_rewrite.so   
  4. LoadModule vhost_alias_module modules/mod_vhost_alias.so  

在httpd.conf末尾引入增加虚拟主机文件:
include conf/httpd-vhosts.conf

在上面的配置中实现了两种解析方式,同时网页地址栏的信息没有发生变化

(1)实现bbs.pihai.me定向到 http://localhost/test/LoadInfo?key=bbs。适用于网站上不同模块间的配置。

(2)实现test1.blog.pihai.me定向到 http://localhost/test/LoadInfo?key=test1,适用于blog等系统。

具体的转发规则将在后续的文章中进行讲解。 

3、在conf下新建配置httpd-vhosts.conf文件;并添加如下内容

  1. <VirtualHost *:80>    
  2.     ServerAdmin service@pihai.me    
  3.     DocumentRoot D:\apache-tomcat-6.0.29\webapps\ROOT    
  4.     ServerName www.pihai.me   
  5.     ServerAlias *.pihai.me   
  6.   
  7.     JkMountCopy On   
  8.     ErrorLog logs/all-sites-error.log    
  9.     CustomLog logs/all-sites-access.log common    
  10.   
  11.     RewriteEngine On    
  12.     # (1)下面三行实现动态解析 二级域名   
  13.     RewriteCond %{HTTP_HOST} ^[a-z0-9\-]+\.pihai\.me$    
  14.     RewriteRule ^/(.*)$ /%{HTTP_HOST}/$1    
  15.     RewriteRule ^/([a-z0-9\-]+)\.pihai\.me/?$ /test/LoadInfo?key=$1 [L,PT]    
  16.        
  17.     RewriteCond %{HTTP_HOST} ^[a-z0-9\-]+\.blog\.pihai\.me$    
  18.     RewriteRule ^/(.*)$ /%{HTTP_HOST}/$1    
  19.     RewriteRule ^/([a-z0-9\-]+)\.blog\.pihai\.me/?$ /test/LoadInfo?key=$1 [L,PT]    
  20.        
  21.     <Directory “D:\apache+tomcat+mod-jk\webapps\test”>    
  22.         Options FollowSymLinks    
  23.         AllowOverride None    
  24.         Order allow,deny    
  25.         Allow from all    
  26.     </Directory>    
  27. </VirtualHost>   

 

在上面的配置中实现了两种解析方式,同时网页地址栏的信息没有发生变化

(1)实现bbs.pihai.me定向到 http://localhost/test/LoadInfo?key=bbs。适用于网站上不同模块间的配置。

(2)实现test1.blog.pihai.me定向到 http://localhost/test/LoadInfo?key=test1,适用于blog等系统。
具体的转发规则的正则设置将在后续的文章中进行讲解。

5、访问测试
 为了更好的测试具体效果,我用Servlet根据获取到的Key值然后再做个跳转。

  1. import java.io.IOException;   
  2.  import javax.servlet.ServletException;   
  3. import javax.servlet.http.HttpServlet;   
  4. import javax.servlet.http.HttpServletRequest;   
  5. import javax.servlet.http.HttpServletResponse;   
  6.   
  7. /**  
  8.  * Servlet implementation class LoadInfo  
  9.  */  
  10. public class LoadInfo extends HttpServlet {   
  11.     private static final long serialVersionUID = 1L;   
  12.   
  13.        
  14.     public LoadInfo() {   
  15.     }   
  16.   
  17.     protected void doGet(HttpServletRequest request,   
  18.             HttpServletResponse response) throws ServletException, IOException {   
  19.         this.doPost(request, response);   
  20.     }   
  21.   
  22.     protected void doPost(HttpServletRequest request,   
  23.             HttpServletResponse response) throws ServletException, IOException {   
  24.         // 获取请求中的Key值   
  25.         String key = request.getParameter(“key”);   
  26.         // 转发页默认为404   
  27.         String toUrl = “404.jsp”;   
  28.         // 如果key值不为空,转发到index_key.jsp页面   
  29.         if(null!=key && !“”.equals(key)){   
  30.             // 此处需要加载相关要显示的数据   
  31.             System.out.println(“此处需要加载相关要显示的数据…”);   
  32.             toUrl = “index_”+key+“.jsp”;   
  33.         }   
  34.         request.getRequestDispatcher(toUrl).forward(request, response);   
  35.     }   
  36.   
  37. }  

(2)在WebContent下新建index_bbs.jsp、index_blog.jsp,index_test1.jsp、index_test2.jsp

(3)发布应用并重启apache
(4)在浏览器中分别输入bbs.pihai.me,blog.pihai.me test1.pihai.me进行测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值