我的nginx配置监听的是 8888端口,但是访问网站域名的时候 我不想带上 8888端口, 期望直接访问域名就可以访问网站 首页和子页面;但是我的80端口 已经被iis服务器占用了(asp代码开发的网站)
所以在不影响iis配置的相关网站的正常使用
操作如下:
在 IIS 反向代理的 入站规则(Inbound Rules)中,如果你想仅仅针对 test.xxx.com 进行匹配,可以按照以下方法配置 模式(Pattern)。
解决方案(具体要找到在哪里添加的 )
- 正确的 模式(Pattern) 配置
在 URL Rewrite > 入站规则(Inbound Rules) 中,配置以下内容:
请求的 URL(Requested URL):
匹配类型(Matching Type):正则表达式(Regular Expressions)
模式(Pattern):
regex
复制
编辑
(.*)
作用:匹配所有 URL 请求(包括首页和子页面)。
- 添加 HTTP_HOST 条件,确保仅针对 test.xxx.com
在 “条件”(Conditions)部分:
点击“添加”(Add)
输入条件:
条件输入(Condition input):{HTTP_HOST}
检查条件(Check if):Matches the Pattern
模式(Pattern):
regex
复制
编辑
^test.xxx.com$
使用(Using): 正则表达式(Regular Expressions)
- 目标(Rewrite URL / Redirect)
在 "操作(Action)" 部分:
操作类型(Action type):Rewrite
重写 URL(Rewrite URL):
plaintext
复制
编辑
http://127.0.0.1:8888/{R:1}
如果 Nginx 运行在 8888 端口,IIS 会将 test.xxx.com 的请求转发到 http://127.0.0.1:8888/
预期效果
访问的 URL 是否匹配规则? 结果
http://test.xxx.com/ 是 反向代理到 http://127.0.0.1:8888/
http://test.xxx.com/MBA 是 反向代理到 http://127.0.0.1:8888/MBA
http://www.test.xxx.com/ 否 不匹配,不代理
http://otherwebsite.com/ 否 不匹配,不代理
总结
✔ 模式(Pattern): (.*) 让 URL 规则匹配所有请求
✔ 添加 {HTTP_HOST} 条件 限制 只对 test.xxx.com 反向代理
✔ 目标(Rewrite URL) 确保请求被正确转发到 Nginx
这样,只有 test.xxx.com 的请求会被代理到 127.0.0.1:8888,其他域名不会受到影响!