apache tomcat 动态代理二级域名 的问题

依然傻笑 发布于 2013/02/05 19:12
阅读 671
收藏 1

软件配置:apache +1个tomcat

广域网IP一个 223.4.3.4

主域名、二级域名:www.t.cn,shop.t.cn在域名提供商那都加了A类解析,指向 223.4.3.4

需求:当用户在浏览器访问shop.t.cn的时候,实际是上把请求转发给 tomcat处理,浏览器显示的路径还是原来的shop.t.cn。

即:访问 shop.t.cn 实际上 t.cn:8080/shop,访问shop.t.cn/blog?id=123 实际上 t.cn:8080/shop/blog?id=123

经验:实现过 apache ajp动态代理到tomcat,即t.cn/shop-->t.cn:8080/shop

问题:

1. rewrite url,把shop.t.cn --> t.cn/shop, 把shop.t.cn/blog?id=123-->t.cn/shop/blog?id=123,然后就按照经验搞,这样子可行吗?可行的话,麻烦给出RewriteCond 与 RewriteRule

我自己抄了个 

RewriteCond %{HTTP_HOST} ^shop.t.cn$

RewriteRule ^/(.*)$ /%{HTTP_HOST}/$1

RewriteRule ^shop.t.cn/?(.*)$ /shop/$1 [L,PT]
但是,不对。。。每次访问 shop.t.cn 的时候,没有跳转!!!怀疑是那个rewriteRule写错了= =!!!

完整的虚拟机配置vhost.conf

NameVirtualHost *:80

<VirtualHost   *:80>
ServerAdmin    admin@t.cn   
ServerName     shop.t.cn
RewriteEngine  on
RewriteCond    %{HTTP_HOST} ^shop.t.cn$    
RewriteRule     ^/(.*)$ /%{HTTP_HOST}/$1
RewriteRule     ^shop.t.cn/(.*)$ /shop/$1 [L,PT]
</VirtualHost>

贴上 ajp.conf

<Proxy balancer://shop>  
   BalancerMember ajp://localhost:8009/s loadfactor=1  smax=0 ttl=60
   ProxySet lbmethod=bytraffic
</Proxy>
ProxyPass /shop balancer://shop

2.如果这个思路不行,要怎么搞呢?

先谢~


实现了!!!果然是RewriteRule的问题!!!

NameVirtualHost *:80

<VirtualHost   *:80>
ServerAdmin    admin@t.cn   
ServerName     shop.t.cn
RewriteEngine  on
RewriteCond    %{HTTP_HOST} ^shop.t.cn$    
RewriteRule     /(.*)$ http://t.cn/shop/$1 [L,P]
</VirtualHost>

结贴!想了很久没弄出来,结果一发帖就想出来了!难道是osc给了俺精神上的引导?!!!

加载中
返回顶部
顶部