You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于IIS 8、ARR及URL Rewrite搭建单服务器后端应用反向代理

实现第二个应用的HTTPS反向代理(IIS 8 + ARR + URL Rewrite)

结合你描述的现有环境——已经装好了ARR和URL Rewrite,有个绑定443端口、用第二个应用证书的空站点,第一个应用已经搞定HTTPS,第二个跑在80端口只能HTTP——咱们直接动手配置反向代理:

1. 先确认ARR的反向代理功能是开启的

打开IIS管理器,先选中服务器节点(不是你的那个空站点),然后找到Application Request Routing Cache双击进去。右边操作栏点Server Proxy Settings,把Enable proxy勾上,点Apply保存。这一步是给ARR“开门”,让它具备反向代理的基础能力。

2. 给空站点添加反向代理规则

找到你那个绑定443的空站点,双击URL Rewrite:

  • 右侧点击Add Rule(s),选择Reverse Proxy,点击OK
  • 弹出的对话框中,输入第二个应用的地址:http://localhost:80(如果应用绑定了特定IP,就换成对应IP,比如http://192.168.x.x:80)
  • 一定要勾选Enable SSL Offloading!这个选项会帮你把HTTPS请求解密后转发给后端的HTTP应用,同时还会把HTTPS相关的请求头传给后端,避免应用识别请求协议错误
  • 点击OK,IIS会自动生成对应的重写规则

3. (可选)多域名区分时添加条件规则

如果两个应用需要通过不同域名共享443端口访问(比如app1.yourdomain.com和app2.yourdomain.com),得给规则加个域名条件避免冲突:

  • 在URL Rewrite的规则列表里找到刚生成的规则,点击Edit
  • 切换到Conditions标签,点击Add
  • 条件输入{HTTP_HOST},匹配类型选择Matches the Pattern,模式写第二个应用域名的正则表达式(比如^app2\.yourdomain\.com$),匹配方式选Regular Expressions
  • 这样只有访问该域名的HTTPS请求才会转发到第二个应用的80端口

4. 验证配置效果

  • 重启一下绑定443的空站点(保险起见,确保规则完全生效)
  • 用浏览器访问https://你的第二个应用域名,应该能正常打开应用,且地址栏的HTTPS锁标正常显示
  • 要是遇到问题,可以开启IIS的Failed Request Tracing,或者查看ARR的日志,排查是否是转发路径错误、后端应用未正常运行等原因

常见问题排查

  • 502错误:先检查第二个应用是否真的在80端口运行,ARR服务器能否正常访问http://localhost:80,本地防火墙是否拦截了端口访问
  • 证书不生效:确认空站点的443绑定确实使用了第二个应用的证书,证书域名要和访问域名匹配,且证书未过期
  • 后端拿不到客户端IP:回到ARR的代理设置,勾选Enable client IP address preservation,后端应用就能通过X-Forwarded-For头获取真实客户端IP

内容的提问来源于stack exchange,提问作者user6329667

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:51:48