hncys 发表于 2017-1-12 10:34:39

当使用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 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获取、路径获取、域名等。
  这些都需要开发人员去对应。
页: [1]
查看完整版本: 当使用spring mvc 的restful架构后,apache+resin的配置问题