es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La reescritura de URL a otro servidor para un archivo específico (proxy inverso) no funciona en el sitio de Umbraco 8.

Necesito servir un archivo de script desde un servidor de terceros como si viniera de mi propio servidor. Debe ser una tarea simple de proxy inverso con reescritura de URL.

Requisitos previos:
IIS tiene instalados Url Rewrite 2.0 y ARR 3.0.

Lo que funciona:
cuando configuro un sitio web local vacío en IIS y agrego una regla de reescritura simple como esta:

<configuration>
    <system.webserver>
        <rewrite>
            <rules>
                <rule name="ReverseProxyInboundRule1" enabled="true" stopprocessing="true">
                    <match url="localJs/proxiedScriptFile.js"></match>
                    <action type="Rewrite" url="https://thirdpartyserver.de/js/script.js"></action>
                </rule>
            </rules>
        </rewrite>
    </system.webserver>
</configuration>

Puedo navegar a localhost/localJs/proxiedScriptFile.js y se me servirá correctamente `https://thirdpartyserver.de/js/script.js` en su lugar. Por lo tanto, ARR y Rewrite están funcionando.

Lo que no funciona:

Cuando agrego la misma regla de reescritura al web.config de mi sitio web existente de Umbraco 8 (en el mismo IIS), obtengo un error HTTP 404.4, como si ARR no funcionara.

Lo que intenté:

  • Si en Umbraco 8, cambio la reescritura para apuntar a un archivo local de prueba del mismo tipo, funciona: se sirve el archivo local de prueba. Pero el archivo del servidor de terceros no lo hace.
  • Agregar la ruta de reescritura o URL a Umbraco.Core.ReservedUrls o Umbraco.Core.ReservedPaths no cambia el problema.

¿Tienes alguna idea de qué me estoy enfrentando aquí?

¡Saludos cordiales!
Mikael

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema puede estar relacionado con que Umbraco 8 no reconoce correctamente la regla de reescritura y el módulo ARR. Una solución potencial a este problema es asegurarse de que el sitio web de Umbraco tenga instalados los módulos de ARR y Url Rewrite adecuados. Además, es posible que deba modificar los archivos de configuración de Umbraco para que reconozcan correctamente la regla de reescritura y permitan que el archivo de script de terceros se sirva desde su propio servidor.

    Otra posible solución es crear un directorio virtual separado dentro de IIS que esté específicamente diseñado para servir el archivo de script de terceros. Este directorio virtual puede ser referenciado dentro del sitio web de Umbraco utilizando una ruta relativa. Este enfoque puede ser más simple y más fácil de implementar que modificar los archivos de configuración de Umbraco.

    Finalmente, también puede ser válido considerar si existen preocupaciones de seguridad al servir un archivo de script desde un servidor de terceros como si proviniera de su propio servidor. En algunos casos, este enfoque puede considerarse un riesgo de seguridad y puede ser preferible encontrar una solución alternativa.

Comments are closed.