前言
项目中碰到windows上运行的项目,无法直接使用nginx进行配置,在nginx上两行配置即可解决,在IIS上搜了很多帖子没找到,记录一下解决方案。
方案主要解决问题
- 不想新申请域名访问新服务
- 需要不同访问路径对应不同的物理路径
以下针对实现两条规则:
- 默认请求转发到:
172.16.12.11:8080 - test请求转发到物理目录:
E:\wwwroot\test目录
Nginx中的配置
location /{
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
client_max_body_size 2000m;
proxy_pass http://172.16.12.11:8080;
}
location ~^/test {
root E:\data\wwwroot;
}
IIS配置
问题点:
模式编辑时前缀不以/开始重写URL不能是具体的目录
所以针对难点的解决方案配置如下:
1. 需要增加虚拟目录
在IIS中添加虚拟目录,比如名称叫:testdir ,物理路径设置为:E:\data\wwwroot\test
2. 配置rewrite规则
2.1 config配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="test">
<match url="^test/(.*)" />
<action type="Rewrite" url="testdir\{R:1}" appendQueryString="false" />
</rule>
<rule name="default">
<match url="^(.*)" />
<action type="Rewrite" url="http://172.16.12.11:8080/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
2.2 页面配置


大功告成!
文章介绍了在Windows环境下,IIS服务器如何配置重写规则来实现类似Nginx的路径转发功能。具体包括创建虚拟目录和设置URL重写规则,将默认请求转发到指定IP:端口,以及将/test路径映射到特定的物理目录。



1869

被折叠的 条评论
为什么被折叠?



