终极指南:3步构建生产级AI智能体系统
2026/7/15 12:08:31
反向代理的核心在于“前端接收,后端转发”。
http://旧域名.com-> 浏览器自动走80端口-> IIS 直接返回内容。http://新域名.com-> 浏览器自动走80端口-> IIS 接收到请求。Host)。结论:用户始终只和 80 端口打交道,完全不知道 8080 端口的存在。
这就好比一个公司的前台(IIS)和快递柜(8080端口):
所以,旧网站直接由前台服务,新网站由前台代理服务,两者互不干扰,都能通过“只输入域名”来访问。
如果你的新网站也需要 HTTPS(即用户访问https://新域名.com),配置逻辑是一样的:
https协议和新域名,并安装 SSL 证书。http://127.0.0.1:8080)。这样,用户看到的是安全的 HTTPS,而服务器内部为了节省资源,使用 HTTP 通信。
虽然用户不需要加端口号,但在 IIS 的**新网站(运行在 8080 端口的那个)**绑定设置中,建议做如下调整以避免直接暴露:
127.0.0.1或::1(仅本地访问)。8080。为什么要这样?这样设置后,外部用户即使猜到了http://你的服务器IP:8080,也无法直接访问到你的网站内容(会提示拒绝连接或 404),他们必须通过域名走 80 端口(反向代理)才能访问。这增加了安全性,也强制了“无端口访问”的规范。
请先确保以下两项已在你的 Windows 服务器上完成安装:
⚠️ 这一步非常关键!很多配置失败就是因为漏了这步。
60或更高(避免大文件超时)✅ 此时 ARR 代理功能已全局启用。
Default Web Site绑定了:80(即所有 HTTP 请求默认进入此站)http://你的域名就会显示 Default Web Site因此,我们需要在Default Web Site上添加反向代理规则,而不是新建站点。
Web.config(最可靠)Default Web Site的物理路径(通常是C:\inetpub\wwwroot)web.config<system.webServer>,只复制<rewrite>...</rewrite>部分到其中):<configuration> <system.webServer> <rewrite> <rules> <!-- 修正:添加 ignoreCase="true" 并确保域名完全一致 --> <rule name="Proxy_mc-admin" stopProcessing="true"> <match url="(.*)" /> <conditions> <!-- 重点:添加 ignoreCase="true" 并确保域名无额外字符 举例^shxnju\.skdji\.com$--> <add input="{HTTP_HOST}" pattern="^shxnju\.skdji\.com$" ignoreCase="true" /> </conditions> <action type="Rewrite" url="http://127.0.0.1:8001/{R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>{HTTP_HOST}会获取用户浏览器地址栏输入的域名(不含端口)pattern="^shxnju\.skdji\.com$"中的\.是正则转义,确保匹配字面意义的点号url="http://127.0.0.1:8001/{R:1}"表示将请求转发给本机 8001 端口,并保留原始路径(如/a/b→ 转发到:8001/a/b)stopProcessing="true"表示匹配成功后不再执行后续规则(安全)为了安全,防止有人直接通过http://shxnju.skdji.com:8001访问后台,建议限制其绑定:
http绑定(端口 8001),点击编辑| 问题 | 可能原因 | 解决方案 |
|---|---|---|
访问xjkj.meukeji.cn仍是 Default Web Site | Web.config 未生效 / 规则写错 | 检查 Web.config 是否在wwwroot,检查域名拼写,重启 Default Web Site |
| 返回 502.3 Bad Gateway | ARR 未启用 / 目标端口不通 | 确认第三步已启用 proxy;在服务器本机访问http://127.0.0.1:8001看是否通 |
| 页面样式错乱 / JS 加载失败 | 后端返回的链接含:8001 | 需要配置出站规则(Outbound Rules)替换 HTML 中的 URL,或让前端使用相对路径 |