zoukankan      html  css  js  c++  java
  • [导入]一种更高效率的ISAPI整合IIS与Tomcat_JSP的方式(非jk)

           今天发现一种极好的整合IIS和JSP的方法,毫无疑问java在windows下运行比在linux运行效率要高(大约4%),同比IIS比Apache的IO能力强,在不考虑了lisence的问题下,笔者一直在考虑在windows下部署java的生产环境,尽管笔者的很大程度的工作是管理的维护linux服务器,但是发现很多时候windows还是最好的选择,当然是在得到一样优秀的维护和管理的前提下,一直以来很头疼的就是Tomcat和IIS的整合,在windows下肯定不会考虑使用apache,apache在windows下的表现太差了。笔者使用了2个月时间仔细研读和修改apache 2.29版的windows版源代码(哈哈,不专业了apache的源代码是可移植C++不分版本)试图优化apache的IO。 最终不得不放弃,Apache的构架上不如IIS,在windows上表现始终不如意,所以还是考虑用IIS整合tomcat.

           IIS整合Tomcat的传统方式是JK,通过8009端口做代理,这样做缺点很多,当然优点也很多,优点我就不说了。这样的缺点是实际上要socket一次,笔者认为除非在一台IIS+多个Tomcat,或者IIS和tomcat不在一台服务器上时才有必要使用。在大多数情况,也就是IIS和Tomcat在同一台服务器上时,完全可以用一种高效的办法.

          答案其实就是asp.net里的ihttphandle, 使用asp.net的ISAPI handle劫持要转发的页面(图方便,有达人直接写一个C++的ISAPI也行,.net基于jit效率也没得说),直接把他rewrite到8080端口上,也就是实际上IIS和Tomcat没有任何通信。图片、js、html全部IIS处理,这个小程序只处理URL。也就是我写的这个JSP ihttphandle直接取tomcat 的response 作为IIS的response。

          下载 JSP_iHttpHandle.dll (.net 3.5)  拷贝到站点的bin目录。

          修改web.config添加:

    <!-- JSP ihttpHandle 配置 -->
    <add path="*.jsp" verb="GET,POST" type="com.w3cool.web.jsp.TomcatRequestHandler" />
    <add path="*.xhtml" verb="GET,POST" type="com.w3cool.web.jsp.TomcatRequestHandler" />
    <add path="/servlet/*" verb="GET,POST" type="com.w3cool.web.jsp.TomcatRequestHandler" />
    <!-- JSP ihttpHandle 配置 -->

    然后在 站点属性  -> "home directory" ->Configuration ->

    把.jsp .xhtml你要tomcat处理的内容加在aspnet_isapi.dll上,当然也可以图方便设定一个WildCard

    j1

    好了。现在就可以看看效果


    文章来源:http://www.w3cool.com/2008/09/09/isapi_iis_jsp_jk_tomcat.html
  • 相关阅读:
    设计模式之笔记--工厂方法模式(Factory Method)
    dmesg命令
    jumpserver2.3.0社区开源版
    container偶尔宕掉问题的解决记录
    sshd服务的白名单和黑名单
    /proc/sysrq-trigger文件
    ansible定义主机清单
    简述Etcd、Lvs、HAProxy
    ES6语法 let、const、for...of循环、展开运算符、ES6箭头函数、箭头函数和this、模板字面量、解构、对象字面量简写法、默认参数函数、super 和 extends、Object.assign()
    axios 将post请求时把对象obj数据转为formdata
  • 原文地址:https://www.cnblogs.com/weijie/p/1348752.html
Copyright © 2011-2022 走看看