依稀记得最开始进绿岛时,普遍一个看法是,因为梧桐不能访问,导致人气不高。不能对外的原因是学校防火墙只开放了有限的一些端口:80、21、3389等,而服务器上又挂了团委主站(ASP+SQL Server)和梧桐(JSP+MySQL),IIS“霸占着”80端口,只是在IIS做了一个域名映射,把访问梧桐的域名跳转到8080端口的地址,这样一来外网由于端口不开导致外网就无法访问了。到后来团委和梧桐都改成了JSP+MySQL,这个问题才告一段落,不过事实证明,人气不高另有原因,咳咳。
这一次是因为star赶进度,用jsp轻车熟路写好了,结果被人告知,IIS和Tomcat整合六次,六次(多读几遍…)都没有成功,联想到网上很多人提供全环境的虚拟主机,就说明是肯定可行的,忘记是谁说的去了,意思大概是:在计算机的世界,只要有一种可能,就能实现出很多令人叹服的应用。这一次我们成功解决了问题,于是记录下来给大家分享分享。
不得不提一句,搜索时发现,国内的内容基本上是互相转载,前篇一律;而国外的很多都是原创,而且“与时俱进”。
原理其实很简单:IIS把通过JK2把请求转交给tomcat处理,这里有几篇非常好的博文,配以图文,讲解的很清楚:
----How To Install Apache Tomcat with IIS 6.0
----How To Configure IIS 6.0 and Tomcat with the JK 1.2 Connector
----How To Configure IIS 7.0 and Tomcat with the JK 1.2 Connector
服务器上的环境是:Windows 2003+IIS 6.0+Tomcat5.5+Tomcat JK2.0.4 Connector,整合成功。这里有个小工具setupjk204t6,能够大大简化配置,你只需要安装好IIS和Tomcat,部署好站点就行。
整合之后,上传大于50K的文件会报异常javax.servlet.ServletException: Processing of multipart/form-data request failed. Stream ended unexpectedly,可能是JK2的bug导致,参考了龌龊后的清纯的用JK2整合TOMCAT和IIS后大附件的上传解决方法,由于JK2官方已经停止支持,不再更新,找到了有牛人改过后的isapi_redirector2.dll,替换原来的dll文件,重启Tomcat,上传大文件的bug也修复了~
之前在配置MySQL才发现,原来服务器上已经整合过了,IIS+Apache在跑另一个PHP的网站用的还是MySQL4的版本,新写的网站用到的是MySQL5的一些特性,于是顺带把原来的MySQL服务改名为MySQL4,新增加了MySQL5的服务,多实例MySQL共跑也配置成功。
1.配置的关键是使用no-install版本的MySQL,分别编辑对应版本的my.ini文件,其他部分不用管,但要保证端口号不一样:
[MySQL4] my.ini
port = 33064
master-port = 33064
report-port = 33064
-----------------------------
[MySQL5] my.ini
port = 33065
master-port = 33065
report-port = 33065
找不到my.ini?找到下面任意一个改成my.ini都行,不过还要看情况,负载重才选heavy:
2.把MySQL注册为服务:
MySQL4在命令行输入命令:"mysqld-nt --install MySQL4 --defaults-file=C:/mysql4/my.ini"(把你的my.ini路径替换即可)
MySQL5在命令行输入命令:"mysqld-nt --install MySQL5 --defaults-file=C:/mysql5/my.ini"(要是没有mysqld-nt.exe,输入mysqld.exe也是一样的)
3.启动服务,连接数据库时注意端口号就行了。
就这样,不知不觉中就完成了全功能主机的配置,Web服务器上跑着IIS、Apache、Tomcat,数据库跑着SQL Server和两个MySQL。算是解决了绿岛的遗留问题,本文提到的工具,可以在此下载。