日期:2014-05-16 浏览次数:20848 次
?
下面长话短说
技术架构:
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 webmaster@dummy-host2.localhost
? ? 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获取、路径获取、域名等。
这些都需要开发人员去对应。