IIS 反向代理模块: URL Rewrite 和 Application Request Routing (ARR) ...

  金牌会员 | 2024-9-11 02:43:44 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 810|帖子 810|积分 2430

需要设置iis反向代理的场景其实挺多的。比方websocket、Server Sent Events(SSE) 都需要反向代理。
对于需要临时放公网访问的应用,直接运行127.0.0.1的开发环境,然后通过反向代理访问127.0.0.1就可以了,省去贫困的iis设置。

IIS 实现反向代理功能,必须同时安装 URL Rewrite 和 Application Request Routing (ARR) 两个模块,缺一不可。


  • URL Rewrite 负责:界说反向代理规则。解析传入的请求 URL,根据预界说的规则将请求重写或重定向为新的目标 URL(通常是后端服务器的 URL)。
  • ARR 负责:吸取 URL Rewrite 转发的请求,并将这些请求代理到后端服务器处置惩罚。 默认IIS没有这两个模块,需要本身下载安装
    ARR(Application Request Routing Cache):
    https://www.iis.net/downloads/microsoft/application-request-routing
    URL重写:
    https://www.iis.net/downloads/microsoft/url-rewrite
 



详细规则配置可以通过界面配置也可以直接在web.config上配置,一般来说web.config配置更直观

应用场景一:通过反向代理访问 127.0.0.1:xxxx 。
step1:如上图安装了 URL rewrite 和 ARR,并启动了ARR的Enable proxy。
step2:在IIS上新建站点,绑定好域名,当地物理路径
step3:在当地物理路径跟目录下创建web.config 内容如下:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3.   <system.webServer>
  4.     <proxy enabled="true" preserveHostHeader="true" />
  5.     <rewrite>
  6.       <rules>
  7.         <rule name="ReverseProxyInboundRule1" stopProcessing="true">
  8.           <match url="(.*)" />
  9.           <action type="Rewrite" url="http://127.0.0.1:8080/{R:1}" />
  10.         </rule>
  11.       </rules>
  12.     </rewrite>
  13.   </system.webServer>
  14. </configuration>
复制代码
如果是绑定了域名,还需要在settings.py 中配置:
  1. ALLOWED_HOSTS = ['mydomain.com', '公网IP', '127.0.0.1','localhost']
复制代码
重启站点。
这个配置对websocket、Server Sent Events(SSE)都直接可用。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表