前言
项目中碰到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 页面配置
大功告成!