打通版微社区(4):微信第三方服务部署——JSP的IIS部署
写在前面:
本机环境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_84CLASSPATH: .;%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=ajp13worker.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):PHP环境部署 for DZX3.2
写在前面:本文参考了http://blog.sina.com.cn/s/blog_513be2630101linz.html非常感谢博主此文对我此次操作帮助很大.PHP的windows部署方案主要分为 ...
- 打通版微社区(5):部署DZ3.2
参考官方帖子http://www.discuz.net/thread-3258186-1-1.html 这是第三方的帖子http://www.discuz.net/thread-3199850-1-1 ...
- 微信平台第三方服务器,浅谈微信第三方服务平台的发展前景
伴随着移动端的普及,移动互联网也在飞速的发展,同时也有越来越多的小商家开始抓住了移动互联网的这个渠道开展营销活动.而随着微信的不断更新和发展,微信用户也越来越多,而如今如雨后春笋般出现的各类微信第三方 ...
- android 第三方社区,从友盟微社区看Android第三方SDK架构实践
原标题:从友盟微社区看Android第三方SDK架构实践 开发Android第三方SDK说难不难,但说简单也不简单,要开发一个给很多人使用的第三方SDK,如何在保证稳定性的同时,增强SDK的灵活性,让 ...
- 微信第三方服务平台开发(一)
工作中遇到开发微信第三方服务的需求,学习的同时记录一下开发的过程,给大家提供一个参考,希望能有些帮助,让大家少走些弯路. 首先说下开发流程,微信公众平台提供了大量的第三方接口供开发者调用,可以丰富微信 ...
- 微信第三方服务平台java授权获取token(一)
公众平台第三方平台是为了让公众号或小程序运营者,在面向垂直行业需求时,可以一键授权给第三方平台(并且可以同时授权给多家第三方),通过第三方平台来完成业务,开放给所有通过开发者资质认证后的开发者使用. ...
- 微信第三方服务平台源码分析——每个Action与模块的对应关系
Lib\Action |__Home--------前台页面中的首页,功能介绍,关于我们,帮助中心 |__System------后台管理 |__AdminAction ...
- 服务器换IP地址导致微信第三方服务失效
昨晚10点,服务器更改了IP地址,同时也更新了域名的DNS解析.其他应用均正常.但在更新了微信开放平台中的第三方平台项目的白名单IP地址列表后,微信官网仍然不能每隔10分钟推送component_ve ...
- 微信加入“微社区” Discuz!发力移动社交
一些科技媒体及自媒体微信公号接入了由康盛创想开发的微社区,与传统PC论坛形态不同,微社区基于微信公号,通过菜单项点击或回复关键词激活. 先简单介绍下这个产品,进入微社区是通过一个连接,有自定义菜单的可 ...
最新文章
- 【Docker】容器的几种网络模式
- 软件体系架构模式之二分层体系结构
- 修改手机屏幕刷新率_到底高刷新率屏幕为智能手机带来什么?
- python opencv转换bytesio
- DockerFile和DockerCompose使用总结
- 作者:谭昊翔(1990-),男,华南师范大学计算机学院硕士生。
- 新加坡科技设计大学招收全奖博士,以及Research Assistant/Postdoc
- C#窗体在任务栏对窗体放大或缩小
- 基于WDF的PCI/PCIe接口卡Windows驱动程序(3)- 驱动程序代码(头文件)
- mysql数据库访问程序_c++程序访问MySQL数据库操作示例
- mongoVUE对mongodb常用的基础操作
- 网页背景音乐播放器html代码
- java获取时分秒毫秒_JAVA中如何获取毫秒和微秒数
- ansys轴对称模型之二维模型
- linux redis 调优,关于redis状态监控和性能调优详解
- 太赞了,英伟达又一突破,输入关键词就可以生成直逼摄影师的大片
- [转载] 中华典故故事(孙刚)——35 一文钱难倒英雄汉
- java耗时操作_耗时操作方案总结
- 计算机怎样打开鼠标点的键盘,如何打开计算机虚拟键盘?五种打开计算机虚拟键盘的方法简介...
- 好架构是进化来的,不是设计来的(58架构演进)