Tengo un servidor IIS local que aloja la API web Asp.net Core 3.1 que se ejecuta en el puerto 5000. Mediante el uso de wireguard, el servidor local se conecta con el servidor público. El servidor público también tiene IIS 10 con ARR3.0 habilitado y tiene el sitio creado como https://api.example.com. Al usar IIS como proxy inverso, la API local ha sido expuesta y la aplicación móvil la está consumiendo.

La siguiente regla de reescritura de URL se ha escrito en web.config:-

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="ReverseProxyInboundRule1" enabled="true" stopProcessing="true">
                    <match url="(.*)" />
                    <action type="Rewrite" url="http://192.168.2.79:5000/{R:1}" />
                </rule>
            </rules>
            <outboundRules>
                <rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1" enabled="true">
                    <match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^http(s)?://192.168.2.79:5000/(.*)" />
                    <action type="Rewrite" value="http{R:1}://api.example.com/{R:2}" />
                </rule>
                <preConditions>
                    <preCondition name="ResponseIsHtml1">
                        <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
                        <add input="{RESPONSE_CONTENT_TYPE}" pattern=".*/.*" />
                    </preCondition>
                </preConditions>
            </outboundRules>
        </rewrite>
    </system.webServer>
</configuration>

La API funciona bien y devuelve todas las respuestas. El problema surge cuando la respuesta de la API devuelve URL de imagen generadas dinámicamente, lo cual es correcto si se implementa directamente en el servidor, pero detrás del proxy inverso está devolviendo la URL local, que no es correcta. Quiero volver a escribir las URL base en el cuerpo de respuesta de la API. ¿Cómo puedo hacer eso?

Pruebe la llamada a la API desde Swagger Docs

Código para generar URL de imagen dinámicamente: - Código para generar URL de imagen dinámicamente

Avíseme, ¿cómo puedo reescribir la URL base dentro del cuerpo de respuesta de la API?

no answer