首先,我对IIS和Windows Server是全新的。 以前我曾经只在Apache和Linux上工作。
我想在一个子域下链接IIS8和Tomcat 7.0.34,这样当有人访问subdom.mydomain.com时候,IIS就会把请求转发给tomcat
我咨询了这两个参考文献:
http://lab.usgin.org/applications/doc/make-tomcat-6x-work-iis7 http://tomcat.apache.org/connectors-doc/reference/iis.html
并做了他们如何显示。 以下是我所做的步骤:
从http://apache.techartifact.com/mirror//tomcat/tomcat-connectors/jk/binaries/windows/下载windows x64 ISAPI二进制文件,并将isapi_redirect.dll放在我的tomcat安装目录下创build的目录名称isapi 。
我创build了一个workers.properties文件,并将其放在tomcat的conf目录中
worker.list = tomcatworker1 worker.tomcatworker1.host =本地主机 worker.tomcatworker1.port = 8009 worker.tomcatworker1.type = AJP13
uriworkermap.properties文件,并将其放在tomcat的conf目录中,并包含以下内容(因为我希望tomcat的根应用程序在子域的根path下运行): / * = tomcatworker1
然后,我创build了一个isapi_redirect.properties文件,并将其放置在我的tomcat安装下的isapi目录下,内容如下:
#雅加达ISAPIredirect器的configuration文件 #ISAPIredirect器扩展的path,相对于网站 #这必须在具有执行权限的虚拟目录中 extension_uri = \ Tomcat的\ isapi_redirect.dll #ISAPIredirect器的日志文件的完整path log_file = C:\ Program Files \ Apache Software Foundation \ Tomcat 7.0_Tomcat7_ins1 \ logs \ isapi_redirect.log #日志级别(debugging,信息,警告,错误或跟踪) LOG_LEVEL =信息 #workers.properties文件的完整path worker_file = C:\ Program Files \ Apache Software Foundation \ Tomcat 7.0_Tomcat7_ins1 \ conf \ workers.properties #uriworkermap.properties文件的完整path worker_mount_file = C:\ Program Files \ Apache Software Foundation \ Tomcat 7.0_Tomcat7_ins1 \ conf \ uriworkermap.properties
在IISpipe理器中,在主服务器节点中selectISAPI和CGI限制function。 打开它并添加一个新的限制与以下信息:
ISAPI或CGIpath= {我的Tomcat目录path} \ isapi \ isapi_redirect.dll
说明= Tomcat
select“允许扩展path执行”
创build了一个绑定了subdom.mydomain.com的新网站,并在其中添加了一个具有以下属性的新的虚拟目录:
别名= tomcat
物理path= {我的Tomcat根目录} \ isapi
接下来,我的新网站节点下的ISAPI筛选器function。 用这个信息创build一个新的filter:
filter名称= tomcat
Executable = {我的Tomcat根目录} \ isapi \ isapi_redirect.dll
最后,确保启用了ISAPI处理程序。
做完所有这些事情后,当我访问我的子域时,我想出了一个运行时错误,我不知道如何解决。 检查错误在这个链接http://backops.cmee.in/
我从来没有成功configuration它,除非虚拟目录使用名称雅加达 ,没有别的。 conf和logs目录需要是ISAPI安装目录的子目录。
如果使用右键单击和“新build文本文档”创build这些.properties文件,那么Windows不会为它们添加.txt扩展名。
最后,在workers.properties中使用127.0.0.1而不是localhost 。 我不知道为什么,但它不能在Windows 2012上使用本地主机。