IIS 整合 Tomcat 的两种方式

IIS 请求转发 Tomcat 的两种方式,看了很多网上资料,亲测第二种方便,记录一下

环境准备

1.确保本机的 tomcat 服务器下项目能正常访问,输入 http://localhost:8080 , 能访问到项目。
(jdk1.8.0_201 + apache-tomcat-8.5.38 的 webapps 下面放我的项目文件夹 root)
在这里插入图片描述在这里插入图片描述

2.确保 IIS 服务配置完善,访问 http://localhost 网页能出现。如下界面
(IIS 配置可查看其他播客资料)
在这里插入图片描述
在这里插入图片描述

一、第一种:用 isapi_redirect.dll 文件,接通Tomcat 与 iis

isapi_redirect.dll 下载

apache 官网下载地址如下:
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win64/jk-1.2.31/amd64/isapi_redirect-1.2.31.dll

或者在此路径下下载:
https://download.csdn.net/download/weixin_45447134/20546966

1.将 这三个文件放在 apache-tomcat-8.5.38/conf 目录下面
·isapi_redirect.dll
·workers.properties
·uriworkermap.properties

workers.properties 文件内容(要与自己的路径对照):

workers.tomcat_home= D://apache-tomcat-8.5.38
workers.java_home= C://Program Files//Java//jdk1.8.0_201
ps=\
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1

uriworkermap.properties文件内容(要与自己的路径对照):

/*.jsp=ajp13

/*.do=ajp13

/*.*=ajp13

2.在桌面新建注册表文件:IIS_Tomcat.reg(要与自己的路径对照),双击启动安装

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ApacheSoftwareFoundation\Jakarta Isapi Redirector\1.0]

"extension_uri"="/jakarta/isapi_redirect.dll"

"log_file"="D://apache-tomcat-8.5.38//logs"

"log_level"="debug"

"tomcat_start"="D://apache-tomcat-8.5.38//bin//tomcat.batstart"

"tomcat_stop"="D://apache-tomcat-8.5.38//bin//tomcat.batstop"

"worker_file"="D://apache-tomcat-8.5.38//conf//workers.properties"

"worker_mount_file"="D://apache-tomcat-8.5.38//conf//uriworkermap.properties"

之后查看注册表:Win+R,输入regedit,查看:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ApacheSoftwareFoundation\Jakarta Isapi Redirector\1.0
在这里插入图片描述
3.在IIS中配置站点:
① 选中 -->网站,右击–>添加 网站(注意端口不要用被占用的)
在这里插入图片描述
② 选中 新建的网站–> 添加虚拟目录:
物理路径为:isapi_redirect.dll 所在的目录在这里插入图片描述
③选中服务器名称–>双击进入 ISAPI和CGI限制,右侧操作下面–>添加,如下图,确定
在这里插入图片描述
④选中 新建的网站–>双击ISAP筛选器,右侧操作下面–>添加,如下图,确定
在这里插入图片描述
⑤选中 新建的网站–>双击处理程序映射,操作–>添加脚本映射,如下图,确定
可执行文件 路径是 isapi_redirect.dll 放置路径
在这里插入图片描述
之后–>编辑功能权限–>全打钩–>确定:
在这里插入图片描述
⑥选中 新建的网站–>默认文档–>添加–>首页
在这里插入图片描述

到此完成:
输入 :www.exam.cn 相当于 localhost:8080

输入你的域名(需要在tomcat的 server.xml中配置域名)就可以直接访问你的javaweb项目了,而不用再加8080端口了。当iis接受到一个jsp网站isapi_redirect会转发到tomcat处理,然后将处理结果再返回给客户。

tomcat的 server.xml中配置域名:

    <Engine name="Catalina" defaultHost="www.exam.cn">
    ...
      <Host name="www.exam.cn"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
    ...
      </Host>
    </Engine>

到这里,网友们都说效果出来了,但是诡异的一幕出现了。。。

我的访问一直 报 404.17 (请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理) 查询资料说是 asp.net 4.x 的版本 没注册上,在这里反复试了几次也没有用,最后解决的方法是用第二种 反向代理的方式新建的网站,然后神奇的是第一种方式建的网站也能正常使用了。。。(不知道是不是第二种方式种新加了什么文件导致的)

下面说一下第二种方式:反向代理

环境需求:

在使用反向代理前,我们需要在IIS中安装 ARR 工具和 URL Rewrite 。
·–> 微软官方 提供安装方式,很快的: Web平台安装程序
在这里插入图片描述

1.安装完成后打开IIS ,选中服务器–>可以看到两个新功能( Application Routing Request 、URL 重写)

在这里插入图片描述
2.双击 Application Request Routing -->选择 Server Proxy Settings
在这里插入图片描述
3.选中–>新建站点–>双击URL重写–>右侧操作–>添加规则–>空白规则
在这里插入图片描述
4.添加配置

名称随意
模式写 ^(.*)
添加条件 - 条件输入 {HTTP_HOST} 模式输入 ^a.exam.cn$
操作类型默认重写
重写URL :http://127.0.0.1:8080/{R:1} ,这个链接表示要跳转的地址

在这里插入图片描述
5.在浏览器访问 www.exam.cn
在这里插入图片描述
这时候试了第一种方式创建的站点也能正常访问。
ps:两个站点的 浏览网址一样,端口一样都为 80,所以同时只能启动一个 网站。

总结:
1、IIS 整合 Tomcat 第二种方式比较方便。
2、局域网中要想都通过域名访问 iis的站点, 每台电脑都要配置 hosts文件进行解析域名
3、最后发现 内网穿透 更加简单粗暴,果断舍弃局域网 访问的这种方式。

不足之处请大佬多多指教哈!~ ღ( ´・ᴗ・` )比心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值