很多机器都需要同时使用tomcat和iis两个服务器以部署不同的网站,而解决共用80端口的问题也经常遇到,今天实际操作了一回,以下是具体步骤:
实现tomcat和iis共用80端口的思路其实就是利用iis可以建立多个网站的功能,将tomcat下的项目添加为iis的一个站点,再使用一个可以redirect的插件,将iis中指向此站点的请求交给tomcat来处理。
本文所用到的组件版本:tomcat 7(64位) ,iis7.5,isapi_redirect-1.2.27.dll(64位),windowsserver 2008(64位),jdk 1.7(64位) 注意:版本必须要一致,防止带来不必要的麻烦
1、 下载我们需要的版本并进行配置
Tomcat 7(64位) 环境变量里新建TOMCAT_HOME 路径为(C:\ProgramFiles\apache-tomcat-7.0.61)
Jdk 1.7(64位) 环境变量新建 JAVA_HOME 路径为(C:\ProgramFiles\Java\jdk1.7.0_79)
Iis 7.5 在windowsserver 2008中自带
测试以上路径配置无误后进行下面操作
2、 下载可以实现redirect的插件,本文所用isapi_redirect-1.2.27.dll(64位),网上自行下载
3、 在桌面上新建一个注册表编辑文件,ab.txt,里面内容为:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\JakartaIsapi Redirector\1.0]
"log_file"="C:\\ProgramFiles\\apache-tomcat-7.0.61\\logs\\isapi.log"
"log_level"="info"
"worker_file"="C:\\ProgramFiles\\apache-tomcat-7.0.61\\conf\\workers.properties"
"worker_mount_file"="C:\\ProgramFiles\\apache-tomcat-7.0.61\\conf\\uriworkermap.properties"
"extension_uri"="/jakarta/isapi_redirect-1.2.27.dll"
4、在tomcat的conf文件夹下建立workers.properties文件,并输入以下内容:
worker.list=jvm1
worker.jvm1.type=ajp13
worker.jvm1.host=ab.fan.cn
worker.jvm1.port=8009
注意:jvm1一定要和一会的server.xml中的jvmRoute="jvm1"这个jvm1一样
5、同样建立uriworkermap.properties内容如下
/*.jsp=jvm1
/*.do=jvm1
/*=jvm1
注意:这里的jvm1需要和第4个步骤中的jvm1一样
6、在tomcat的log目录下建立isapi.log文件,内容为空即可
7、Tomcat6.0 conf目录下新建jakarta文件夹,然后把isapi_redirect-1.2.27.dll(64位)放入其中.
8、在tomcat中的conf文件夹下的server.xml中新加:
注意:ab.fan.cn位hosts文件中所对应的主机
<Engine name="Catalina"defaultHost="ab.fan.cn" jvmRoute="jvm1">
<RealmclassName="org.apache.catalina.realm.LockOutRealm">
<RealmclassName="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Hostname="ab.fan.cn" appBase="webapps"
unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false">
<ValveclassName="org.apache.catalina.valves.AccessLogValve"directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
9、把第3步所建立的ab.txt文件后缀改成reg,然后双击运行,写入注册表。并打开注册表HKEY_LOCAL_MACHINE\SOFTWARE\ApacheSoftware Foundation\Jakarta Isapi Redirector\1.0项,检查右边项目中是否包含如下项:
extension_uri /jakarta/isapi_redirect-1.2.27.dll (jakarta为IIS下的虚拟目录)
log_file c:\Tomcat6.0\logs\isapi.log (指定JK插件使用的日志文件)
log_level debug (指定日志级别)
worker_file c:\Tomcat6.0\conf\workers.properties (指定JK插件的工作文件)
worker_mount_file c:\Tomcat6.0\conf\uriworkermap.properties (指定JK插件的URL映射)
如果没有上述项,则建立相关项和相关值
10、以上为tomcat的配置,现在来进行配置iis:
打开“管理工具”-“Internet信息服务(IIS)管理器”,展开“本地计算机”,选择网站,如图:
在右侧点右键,新建-网站,网站名称任意取,物理路径任意,ip地址为你所用的ip地址应该和主机名是一一对应的,输入“主机名”,如图:
然后在ab网站下添加虚拟目录,如图:
别名为jakarta,物理路径为tomcat下conf下的jakarta
然后点击ab这个网站,找到右边ISAPI筛选器,双击筛选器,然后右击添加如图:
筛选器名称为:jakarta,可执行文件为tomcat下conf下jakarta下的isapi_redirect-1.2.27.dll
然后双击右边的处理程序映射,然后点击编辑功能权限,全部选中,如图
然后点击下面蓝色部分:
找到右边的(ISAPI和CGI限制),双击打开,然后选择添加
路径为tomcat下conf下jakarta下的dll文件,描述写jakarta,一定要点上允许执行扩展路径,然后点击确定
重启iis和tomcat,然后输入ab.fan.cn,这样就会跳转到你的tomcat的主页面了