需要设置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 内容如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <configuration>
- <system.webServer>
- <proxy enabled="true" preserveHostHeader="true" />
- <rewrite>
- <rules>
- <rule name="ReverseProxyInboundRule1" stopProcessing="true">
- <match url="(.*)" />
- <action type="Rewrite" url="http://127.0.0.1:8080/{R:1}" />
- </rule>
- </rules>
- </rewrite>
- </system.webServer>
- </configuration>
复制代码 如果是绑定了域名,还需要在settings.py 中配置:
- ALLOWED_HOSTS = ['mydomain.com', '公网IP', '127.0.0.1','localhost']
复制代码 重启站点。
这个配置对websocket、Server Sent Events(SSE)都直接可用。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |