由于我的网站是IIS搭建的,而某些项目必须使用Tomcat进行部署,所以就有了这次实践。
主要解决以下问题
问题1:IIS和tomcat的2各网站使用的端口不同,但是希望使用二级域名来访问,而不是通过端口号来访问
问题2:不希望防火墙开放tomcat的接口给外部
准备工作
1、先确保tomcat项目能够正常访问。
比如IIS通常使用的是80端口,tomcat项目使用8080端口。用localhost:8080访问,确保tomcat能正常访问。
2、安装IIS相关插件
https://www.alipan.com/s/Un17qi3Gbg3
提取码: a5b1
2个软件都安装
IIS配置
打开IIS
开启反向代理功能
在IIS左侧网站的根节点下,可以看到有Application Request Routing Cache
双击进入,点击右侧栏的Server Proxy Settings进入代理配置
勾选EnabkeProxy,并在右侧栏点击应用
配置网站url重写
1、创建一个网站,网站的存储位置任意
2、在IIS中选中这个网站,可以看到URL重写功能,双击进入URL重写
3、添加新规则(空白规则)
如图所示,模式中填入^(.*)
4、填写条件
如图所示,添加一个条件,条件输入填入{HTTP_HOST}
模式填入你的目标网址,比如^xxx.xxx.com$,这样如果用户输入了这个网址就会触发。当然这个网址的域名必须开通过解析
5、填入重写URL
比如填入tomcat的地址,这里我填入http://localhost:8080/draw/{R:1},它的意思就是跳转到tomcat的draw目录下
其中{R:1}表示用户输入的url后的参数,即xxx.xxx.com后面的字符。但是不是很确定,因为
{R:0}:匹配整个正则表达式的完整内容(整个 URL 中被匹配的部分)。
{R:1}、{R:2}...{R:N}:对应正则表达式中第 1 到第 N 个捕获组(用 () 定义的部分)
6、应用一下
至此IIS就已经完成了反代理和URL重写的功能了