开发者社区> 问答> 正文

请教Apache2.2+tomcat6配置泛域名:报错

大家好,Apache2.2+tomcat6配置动态二级域名,配置后不能解析jsp了,

在Apache中增加:
 

<VirtualHost *:8080> 
    ServerName union.abc.com 
    ServerAlias *.abc.com
    DocumentRoot "D:\Tomcat 6.0\abc\ROOT" 
    <Directory "D:\Tomcat 6.0\abc\ROOT"> 
        Options Indexes MultiViews 
        AllowOverride None 
        Order allow,deny 
        Allow from all 
    </Directory> 
    DirectoryIndex index.jsp 
  </VirtualHost>  

tomcat中增加

 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
			<Context path="" docBase="D:\Tomcat 6.0\abc\ROOT" debug="0" reloadable="true"/>     
      </Host>
访问:http://a.abc.com:8080/ 后出现的是jsp的源码,没有解析jsp,想问一下大家都是怎么配置的,怎么利用Apache+tomcat配置泛域名的,谢谢。

展开
收起
kun坤 2020-06-14 15:22:18 574 0
1 条回答
写回答
取消 提交回答
  • 要解析 jsp 必须用 mod_jk 或者 proxy 把 apache 接收到的请求送到 tomcat 去执行,apache 本身是不支持 jsp 解析的
    ######

    谢谢红薯老大,我修改了一下 VirtualHost增加了ProxyPass,这样就可以访问jsp了,还有一个问题就是比如在地址栏http://test.abc.com 的话,怎么弄到 http://www.abc.com/user.do?name=test ,怎么获取 test这们呢,谢谢。

     <VirtualHost *:8080>
        ServerName union.abc.com
        ServerAlias *.abc.com
        DocumentRoot "D:\Tomcat 6.0\abc\ROOT"
        <Directory "D:\Tomcat 6.0\abc\ROOT">
            Options Indexes MultiViews
            AllowOverride None
            Order allow,deny
            Allow from all
        </Directory>
        DirectoryIndex index.jsp  
        ProxyPass / http://localhost/
        ProxyPassMatch ^/(.*\.(jsp|do))$ http://localhost/$1
      </VirtualHost> 

     

    ######

    RewriteCond %{HTTP_HOST} ^(.*)\.abc\.com$

    RewriteRule ^(.*) %{HTTP_HOST}$1 [C]

    RewriteRule ^(.*).abc.com http://www.abc.com/user.do?name=$1 [PT]

    ######谢谢楼上的兄弟,不用 Rewrite可以吗?不是已经配置了ServerAlias *.abc.com吗?######还有一个问题就是比如在地址栏http://test.abc.com 的话,怎么弄到 http://www.abc.com/user.do?name=test ,怎么获取 test这个呢,谢谢###### 在顶一下
    ######

    推荐你看

    http://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/

    ######

    引用来自“红薯”的答案

    谢谢,现在用的就是这种

     ProxyPreserveHost On
     ProxyPass / http://blog.abc.com
     ProxyPassMatch / http://blog.ab.com

    想实现就是和sina,163网一样的功能比如 user1 用户开通了blog,那他的地址就是 http://blog.user1.abc.com 这种方式,不知道该怎么弄了。

    ######
    <VirtualHost *:8080>
    ServerName www.abc.com
    ServerAlias *.abc.com
    ProxyPreserveHost On
    ProxyPass / http://www.abc.com
    ProxyPassReverse / http://www.abc.com
    RewriteEngine on
    RewriteCond   %{HTTP_HOST}    ^www\.[^.]+\.abc\.com$
    RewriteRule   ^(.+)$      %{HTTP_HOST}$1 [C]
    RewriteRule ^www\.[^.]+\.abc\.com$ /index.jsp?name=$1 [R]
    </VirtualHost>
    上面配置还没有成功,问题还没有找到。。
    2020-06-14 15:22:25
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Apache Flink技术进阶 立即下载
Apache Spark: Cloud and On-Prem 立即下载
Hybrid Cloud and Apache Spark 立即下载

相关镜像