我在 IIS 服务配置方面遇到了问题,基本上当我们想要建立 https 连接时会收到 502 错误。说实话,我是一名开发人员,不是系统管理员,但我正在帮助同事解决这个问题。
当前设置了以下参数:
服务器名称:XXX Web 服务器:IIS(Windows Server 2012)(HTTP)仅用于测试前端 - Angular / 端口 80
后端 - Java / 端口 8787
(HTTPS)这是目标配置。前端 - Angular / 端口 443 后端 - Java / 端口 9787
仅有的https://XXX:443/* 适用于最终用户
因此,在开发环境中没有问题,因为所有端口都可供所有人使用。在生产中,最终用户只能访问一个端口。据说如果我们在 IIS 中正确配置代理,我们可以使用它来调用后端。
代理适用于 HTTP(端口 80),但对于 HTTPS(443),我们收到错误“502 - Web 服务器在充当网关或代理服务器时收到无效响应”
这是 HTTPS 的 web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="https://localhost:9787/iam-b2e-backend/{R:1}/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
对于 HTTP
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ForwardProxy">
<match url="(.*)" />
<action type="Rewrite" url="http://localhost:8787/iam-b2e-backend/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>