作者: yagesi  链接:http://yagesi.javaeye.com/blog/165443  发表时间: 2008年02月27日

声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!

IIS+Tomcat整合,实现上传功能,有天生缺陷...
两个服务器整合到一起之后,上传超过100K的文件,系统就会出现异常,但是单独请求Tomcat服务器却一切正常,(这里会有一个异常,至于是什么异常我忘记了...).当时我在google上找了相应的解决方案,但是都没效果,一上传大文件,程序照样会出现错误....
在这里我采用了一个比较笨的方法,效果还不错,就是所有上传文件的请求,直接请求到TOMCAT服务器,绕过IIS,比如你的IIS上传请求是:http://www.blue.com/upload/upload....
修改为http://www.blue.com:8080/upload/upload...就是加上TOMCAT服务器的端口号...这样就能解决问题了...在你的程序中.两个请求地址都共享你的session内容,所以不用担心请求方式不同造成的会话失效...


TOMCAT自身有很多缺陷,它不像APACHE,IIS 一样对静态文件进行管理配置,比如IIS中我们可以设置网页失效时间,那样我们就可以缓存页面的图片,css,JS等等静态文件...不需要每次请求都需要从服务器上重新加载一次静态文件...
之前做过一个项目,实现模块拖动功能,而每个模块上有很多图片...如果我每次拖动.那么该模块上的所有.jpg文件就需要从服务器重新下一次,加剧了服务器的压力...
其实TOMCAT和IIS整合,我们就可以盗用IIS对静态文件管理的特性,(IIS+Tomcat整合我在这里将不复述...大家可以去搜下...google上有很多...)
在注册表(添加jakarta的地方)添加一个新项...名称为:work_mount_file 值:x:\\xxx\xx\xx\uriworkermap.properties
该文本可以配置你想转交给IIS管理的静态文件类型:
例如:在workers.properties文件中,我们配置worker.list=ajp13w
那么在uriworkermap.properties文件中就可以有下列描述:
/diy/* = ajp13w #这里是因为防止别人访问除了项目以外的东西,否则有可能直接访问到我们TOMCAT的后台管理
!/*.jpg=ajp13w #将jpg文件交给IIS管理
!/*.wav=ajp13w #将wav文件交给wav管理
..................................
设置完毕之后还要去设置你的IIS,选中你网站--->属性---〉HTTP头,在这里可以设置内容的过期〉...这样就可以实现IIS对静态文件的管理...


今天这两个小问题介绍到这里...
本文的讨论也很精彩,浏览讨论>>


JavaEye推荐




文章来源:http://yagesi.javaeye.com/blog/165443
posted on 2008-07-05 12:20  Zen.赱L  阅读(918)  评论(1编辑  收藏  举报