写在前面:

本机环境2008R2、tomcat8

网上搜了很多JSP的IIS部署,内容大部分是相近的,这些文章最早出现在2012的样子。大概的原理就是通过ISAPI方式对IIS进行扩展(这个扩展是tomcat官方的,是官方comcat-connectors项目的IIS子集),让IIS将JSP提交给tomcat进行处理。官网有英文版本的详细介绍http://tomcat.apache.org/connectors-doc/webserver_howto/iis.html 另外csdn上down了一个文档,指出了官网原文有不正确的地方。两者是我参考的主要文献。
PS:所谓指出官方文档有不正确的地方就是64位的2008R2在使用ISAPI这个扩展文件时是否使用64位,如果是64位则参考官方文档,如果不是则参考网上的文档。在具体部署这一步骤的时候我详细记录了。

其他参考文档

http://blog.sina.com.cn/s/blog_68b0cad1010168hf.html
http://www.it165.net/os/html/201402/7156.html

一、部署jre

我下载的是1.8.0.45 x64,放到D盘Server目录下

配置环境变量

Path:               %JAVA_HOME%\bin;
JAVA_HOME: D:\Server\Java\jre1.8.0_84
CLASSPATH: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

二、部署tomcat

我下载的是apache-tomcat-8.0.23 8.0.23 用的是安装版,安装版本自动匹配64

安装到D:\Server目录下。好了直接访问8080端口可以发现tomcat已经OK了

三、配置Tomcat Connectors

1.下载Tomcat Connectors JK 1.2。说的好听,就是ISAPI扩展文件,官网直接放出源码。我下载的是“tomcat-connectors-1.2.40-windows-x86_64-iis.zip”。http://apache.fayea.com/tomcat/tomcat-connectors/jk/binaries/windows/

2.拷贝isapi_redirect.dll文件到Server\Tomcat8\bin\win32\x86_64文件夹下。

3.注册isapi_redirect.dll,我直接弄reg文件并没有完全导入成功,后面两项我是手动添加上去的。

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0]
"extension_uri"="/jakarta/isapi_redirect.dll"
"log_file"="D:\Server\Tomcat8\logs\isapi.log"
"log_level"="debug"
"worker_file"="D:\Server\Tomcat8\conf\workers.properties"
"worker_mount_file"="D:\Server\Tomcat8\conf\uriworkermap.properties"

PS:

a.extension_uri:tomcat这个isapi工作原理,是通过iis的虚拟目录调用tomcat的,在这里也就是site下面有个虚目录jakarta,jakart指向了存放dll的目录。通过调用这个虚目录在调用tomcat。
b.worker_file与worker_mount_file者两个文件是配置的是iis调用tomcat后,tomcat自己的工作方式及站点挂载方式。

c.在2008R2中如你想使用32位的isapi接口文件,也是可以的。只需要将isapi换成32位的dll文件。然后在IIS里面将允许jsp的site对应的应程序的高级设置里将 将启用32位程序设置为true(官方的介绍就是讲应用程序模式改为WOW64模式),注册表注册项目路径改为HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Jakarta Isapi Redirector\1.0 也就在wow64模式下注册。

4.在tomcat安装目录下conf文件夹下建立两个文件

文件1:workers.properties 其中worker1代表一个应用标签

#这里的worker1是worker们的名字。worker相当于一个tomcat运行实例,可以允许多个,就在此定义命名,命名规则为大小写字母数字与下划线减号
worker.list=worker1
#指定运行实例的工作类型,分为ajp12(一个旧的协议,为了兼容而保留,不赞成使用的),ajp13(常用的),lb(负载均衡方式工作的)
worker.worker1.type=ajp13 worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.lbfactor=1
worker.worker1.connection_pool_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=60 ##官方的例子 Define 3 workers, 2 real workers using ajp12, ajp13, the last one being a loadbalancing worker
#worker.list=worker1, worker2, worker3
# Set properties for worker1 (ajp12)
##worker.worker1.type=ajp12
#worker.worker1.host=localhost
#worker.worker1.port=8007
#worker.worker1.lbfactor=1
## Set properties for worker2 (ajp13)
#worker.worker2.type=ajp13
#worker.worker2.host=localhost
#worker.worker2.port=8009
#worker.worker2.lbfactor=1
#worker.worker2.connection_pool_timeout=600
#worker.worker2.socket_keepalive=1
#worker.worker2.socket_timeout=60
## Set properties for worker3 (lb) which use worker1 and worker2
#worker.worker3.balance_workers=worker1,worker2

文件2:uriworkermap.properties

/examples/* = worker1
/TZCGS/*=worker1

PS:

a.worker_file一般指向一个tomcat的工作实例类似iis的site.

b.worker_mount_file类似iis里面的虚目录配置文件。这里就是如果请求uri是hostlocal/examples和hostlocal/TZCGS 就用worker1实例来解析,其他还有iis来判断如何执行。其中的*是转义字符代表匹配任意后缀,也可以配置相关规则具体可详见官网说明。如果直接说/*=worker1那整个整个站点都有worker1实例来执行。

c.如何让IIS的一个site同时使用jsp,php,.net jsp的配置重点就是这里,你得告诉iis什么uri规则让tomcat执行。

四.配置IIS

1)在IIS的根节点即计算机节点中选择“ISAPI和CGI限制”里面增加isapi_redirect.dll扩展,参考如下

PS:这里的的描述可以自己设置,我建议可以为jakarta也可以为jsp

2)在iis增加一个site用来跑jsp程序,配置可以参考如下

3)在该站点的ISAPI筛选器中添加isapi筛选模块。名称自定义可以参考如下。

4)建立映射jsp执行的虚目录,此虚目录不做实际的虚目录使用,只是跟注册表中注册的extension_uri配合指向tomcat。所以这个虚目录的名称一定要对应注册表中extension_uri的值。在这里就是jakarta。然后其物理路径一定要指向isapi_redirect.dll的目录,在这里是D:\Server\Tomcat8\bin\win32\x86_64

5)配置虚目录的“应用程序映射”,编辑功能权限,将“执行”打勾,配置参考如下

ps:在这一步,有网文说需要添加一个*.jsp的映射指向到isapi的dll,在2008r2环境中本人实测根本不需要。

五.添加php程序,我这里是一个dz3.2的论坛。因为我直接配置了phpmanager且使用FASTCGI模式,只要在IIS的根节点配置成功,添加PHP程序就像添加.NET程序一样简单根本不需要配置任何东西。

PHP的IIS配置参考我之前的文章。

2)添加执行PHP程序的虚目录。即可

至此,根据我上文的配置,localhost/examples 就是访问tomcat 下webapps\examples中的jsp程序 ,访问localhost/bbs就是访问此虚目录指向的php dz程序。

六、32位的isapi_redirect.dll的总结

32配置的注册表文件

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Jakarta Isapi Redirector\1.0]
"extension_uri"="/jakarta/isapi_redirect.dll"
"log_level"="debug"
"worker_file"="D:\\Server\\Tomcat8\\conf\\workers.properties"
"worker_mount_file"="D:\\Server\\Tomcat8\\conf\\uriworkermap.properties"
"log_file"="D:\\Server\\Tomcat8\\logs\\isapi.log"

32位在IIS中需要单独配置的地方,正因为32程序是基于WOW64模式,所以注册表才会要在相应的目录下配置

关于Eclipse使用tomcat自身配置文件,运行tomcat服务。

怎么有这个问题的。主要是因为,要在测试服务器上使用Eclipse开发环境调试程序。Eclipse的server窗口里面的web服务,默认Eclipse自己建立一个独立的tomcat服务,这个服务在配置文件在%workspace_dir%\.metadata\.plugins\org.eclipse.wst.server.core\tempX目录下。也就是上面的IIS+tomcat的方法,无法让IIS调用tomcat安装目录下的配置的。解决途径有两种:
一种是把IIS的配置操作用于workspace目录下。
一种是把Eclipse调试用的tomcat服务,直接使用tomcat安装目录下的配置文件生产。

我选择的是后者。Eclipse的server一旦建立,里面是无法修改的。解决方法在server窗口中删除那个server直接重建,选择use tomcat installation 即可。

打通版微社区(4):微信第三方服务部署——JSP的IIS部署的更多相关文章

  1. 打通版微社区(3):在Web服务器上部署memcache For DZ3.2

    写在前面:首先这个数据库加速程序的原理,是将数据库内容缓存到Web服务器的内存上,也就是内存换速度.我本次微社区的应用其实应该用不了这个,只是看到好多DZ论坛部署的都安装了这个,我就练手一下以便不时之 ...

  2. 打通版微社区(6):部署微信插件及开通QQ云服务

    写在前面: 此文是我最后写的.其实实际部署的时候,我是先安装了论坛并试图开通微信的微社区.发现微社区需要在微信公众平台的开发者中心里配置 "网页账号,网页授权获取用户基本信息"为论 ...

  3. 打通版微社区(1):PHP环境部署 for DZX3.2

    写在前面:本文参考了http://blog.sina.com.cn/s/blog_513be2630101linz.html非常感谢博主此文对我此次操作帮助很大.PHP的windows部署方案主要分为 ...

  4. 打通版微社区(5):部署DZ3.2

    参考官方帖子http://www.discuz.net/thread-3258186-1-1.html  这是第三方的帖子http://www.discuz.net/thread-3199850-1- ...

  5. 打通版微社区(2):服务器部署MySql数据库 For DZ3.2

    写在前面:单独写部署MySql原因是,我这边的应用数据库都是独立存在的,数据与应用分别部署在不同的服务器.另外我也没有实际部署MySql的经验,特意写一篇日志,张记性.安装MySql参考了http:/ ...

  6. Python Django对接企业微信第三方服务回调验证的一些坑

    今天公司老总,叫我把公司的企业微信,服务商管理后台中的本地应用进行回调验证. 听起来一脸懵逼,没搞过企业微信对接情况.一头雾水,不知道如何下手. 先讲解一下,企业微信情况. 登录到企业微信后,右上角服 ...

  7. 解决微信浏览器缓存站点入口文件(IIS部署Vue项目)

    最近开发的微信公众号项目中(项目采用Vue + Vux 构建,站点部署在IIS8.5上),遇到个非常奇葩的问题,发布站点内容后,通过微信打开网址发现是空白页面(后来验证是微信浏览器缓存了入口文件-in ...

  8. 《小猪CMS(PigCms)多用户微信营销服务平台系统V6.1完美破解至尊版带微用户管理CRM+微信支付》

    <小猪CMS(PigCms)多用户微信营销服务平台系统V6.1完美破解至尊版带微用户管理CRM+微信支付> 之前发布了不少微赢的多用户微信网站源码,今天为我的小伙伴们准备的是功能非常强悍, ...

  9. 《pigcms v6.2最新完美至尊版无任何限制,小猪微信源码多用户微信营销服务平台系统》

    <pigcms v6.2最新完美至尊版无任何限制,小猪微信源码多用户微信营销服务平台系统> 前两天分享了套小猪CMS(PigCms)多用户微信营销服务平台系统V6.1完美破解至尊版带微用户 ...

随机推荐

  1. 窗口大小调整后处理事件jQuery插件ResizeEnd

    需要引入的文件: <script src="js/jquery.min.js"></script> <script src="js/jQue ...

  2. 阅读The Java® Language Specification需要知道的术语

    Null Pointer Exception,简称NPE 在java中,static final修饰的是常量.根据编译器的不同行为,常量又可分为编译时常量和运行时常量. 举例说明吧 public st ...

  3. PTA (Advanced Level) 1013 Battle Over Cities

    Battle Over Cities It is vitally important to have all the cities connected by highways in a war. If ...

  4. Service , DAO ,DBUTtil;

    Service , DAO ,DBUTtil; util一般为基本的数据库操作:打开,关闭数据库连接,查询和更新操作. service 调用 dao 实现业务操作 dao层设计要为service服务, ...

  5. Linux 两个文件求交集、并集、差集

    一.交集 sort a.txt b.txt | uniq -d 二.并集 sort a.txt b.txt | uniq 三.差集 a.txt-b.txt: sort a.txt b.txt b.tx ...

  6. 四大CPU体系结构:ARM、X86/Atom、MIPS、PowerPC

    补充介绍一下RISC:RISC(reduced instruction set computer,精简指令集计算机)是一种执行较少类型计算机指令的微处理器,起源于80年代的MIPS主机(即RISC机) ...

  7. 【C#】RGB转CMYK

    由于目前印兔项目中的在线设计功能设计出来的产品颜色模式不确定,但是客户设计出来的产品需要发送到印厂的客户端去下载并且印刷,只有CMYK颜色模式的产品才能正确印刷,所以需要判断产品的颜色模式是否为CMY ...

  8. django中的缓存

    对于一个动态网站来说,用户的每次访问都意味着对服务器的一次开销,当该服务器的并发访问非常大时,对于一个动态网站来说,开销会非常的大.所以对于大中型web应用来说,减轻服务器的性能瓶颈就很有必要 对于d ...

  9. groovy动态类型--能力式设计

    动态类型 动态类型中的类型是在运行时推断的,方法及其参数也是在运行时检查的. 能力式设计 被称作鸭子模式:他有这么一个观点:如果它走路像鸭子,叫起来也像鸭子,那么他就是一只鸭子. 契约式设计 相当于J ...

  10. uwsgi/uWSGI/WSGI简介

    参考文章 uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换.z WSGI是一种Web服务器网 ...