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

如何配置IIS将scuser.easyfast.com/swagger反向代理到localhost:5003

解决方案:通过IIS反向代理将scuser.easyfast.com/swagger映射到localhost:5003

1. 安装并启用必要的IIS模块

  • 确保已安装 Application Request Routing (ARR) 和 URL Rewrite 模块(可通过IIS管理器的「管理」→「Web平台安装程序」搜索安装)
  • 启用ARR代理:
    1. 打开IIS管理器,选中服务器节点(左侧最顶部)
    2. 双击「Application Request Routing Cache」
    3. 在右侧「操作」栏点击「服务器代理设置」
    4. 勾选「启用代理」,点击「应用」

2. 配置scuser.easyfast.com站点的URL重写规则

  1. 选中IIS中的scuser.easyfast.com站点,双击「URL Rewrite」
  2. 点击右侧「添加规则」,选择「空白规则」,点击「确定」
  3. 配置规则参数:
    • 名称:比如SwaggerReverseProxy
    • 匹配URL:
      • 请求路径:选择「匹配模式」,输入^swagger(.*)$
      • 忽略大小写:勾选
    • 条件(可选,确保仅匹配目标域名):
      • 点击「添加」,条件输入填{HTTP_HOST},匹配类型选「与模式匹配」,模式输入^scuser\.easyfast\.com$
    • 操作:
      • 操作类型:选择「重写」
      • 重写URL:输入http://localhost:5003/swagger{R:1}
      • 追加查询字符串:勾选
      • 停止处理后续规则:勾选
  4. 点击「应用」保存规则

3. 调整.NET Core API的Swagger配置(可选但推荐)

确保API允许外部访问Swagger,在Program.cs中检查配置:

builder.Services.AddSwaggerGen();

// ...

app.UseSwagger();
app.UseSwaggerUI(options =>
{
    options.SwaggerEndpoint("/swagger/v1/swagger.json", "API V1");
    // 保持默认路由前缀即可,无需修改为空,因为我们代理的是/swagger路径
});

默认Kestrel配置已允许本地访问,无需额外调整。

4. 验证与排查

  • 直接访问https://scuser.easyfast.com/swagger,确认是否正常加载API的Swagger页面
  • 若出现502错误:
    • 检查Docker容器内的API是否确实在localhost:5003正常运行(直接访问http://localhost:5003/swagger测试)
    • 确认IIS应用池权限允许发起本地HTTP请求
    • 检查Windows防火墙是否阻止IIS访问5003端口
  • 若Swagger页面样式异常:
    • 打开URL重写规则的「服务器变量」选项卡
    • 添加变量HTTP_X_ORIGINAL_ACCEPT_ENCODING,值设为{HTTP_ACCEPT_ENCODING}
    • 添加变量HTTP_ACCEPT_ENCODING,值设为空(避免双重压缩导致样式加载失败)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 04:42:45