当使用spring mvc 的restful架构后,apache+resin的配置问题

下面长话短说

技术架构:

Spring MVC(RESTFul)+Spring+JPA(Hibernate)

应用软件

Apache+Resin+Window/Linux+MySQL/SqlServer/Oracle/DB2

传统的apache+resin配置(官方教程),apache能够处理静态内容,resin处理jsp、servlet内容

但由于使用RESTFul架构后,大部分的Controller访问地址都无后续名,导致resin不去解析,传统配置无效

(PS:Tomcat 的AJP模块支持排除响应方式,因此无这个问题)

因此,这对这种环境和需求,可以参考下面的配置,通过反向代理形式实现:

#resin配置

#LoadModule caucho_module C:/resin3.1/win32/apache-2.2/mod_caucho.dll

#ResinConfigServer localhost 6800

#CauchoConfigCacheDirectory /tmp

#CauchoStatus yes

#<Location /caucho-status>

  #SetHandler caucho-status

#</Location>

#

#由于apache+resin的旧配置,无法处理restfull的应用

#因此,当需要使用apache+resin,同时也要全网支持restfull,暂时只能使用反响代理模式

#

<VirtualHost *:80>

    ServerAdmin [email protected]

    DocumentRoot "C:/www/cms"

    ServerName localhost

    ErrorLog "logs/dummy-host2.localhost-error.log"

    CustomLog "logs/dummy-host2.localhost-access.log" common

    ProxyPreserveHost On

    ProxyPassMatch ^(/.*\.htm)$ !

    ProxyPassMatch ^(/.*\.html)$ !

    ProxyPassMatch ^(/.*\.shtml)$ !

    ProxyPassMatch ^(/.*\.css)$ !

    ProxyPassMatch ^(/.*\.js)$ !

    ProxyPassMatch ^(/.*\.gif)$ !

    ProxyPassMatch ^(/.*\.jpg)$ !

    ProxyPassMatch ^(/.*\.jpeg)$ !

    ProxyPassMatch ^(/.*\.png)$ !

    ProxyPass /  http://localhost:8080/ 

    ProxyPassReverse / http://localhost:8080/

    #<Proxy *>

#Order Deny,Allow

#Allow from all

    #</Proxy>

    <Directory "C:/www/cms">

Options Indexes MultiViews

AllowOverride None

Order allow,deny

Allow from all

    </Directory>

</VirtualHost>

但用过apache反向代理的人都知道,它也会带来其它问题,如ip获取、路径获取、域名等。

这些都需要开发人员去对应。

相关推荐