ARR Routing (dedicado a jquilez y el que se apunte)

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • jmtella
    Administrator
    • Nov
    • 20594

    #16
    Originalmente publicado por jquilezl Ver Mensaje
    Instalando el ARR
    Pues vete echándole una mirada (lo que hace entre cosas es generar un web.config)

    Comentario

    • jquilezl
      Super Moderator
      • Dec
      • 724

      #17
      Ahora tengo que dejarlo. Ya he instalado el ARR y tengo las tres máquinas adicionales con IIS. Mañana seguiré y les instalaré php y a ver.

      Comentario

      • jquilezl
        Super Moderator
        • Dec
        • 724

        #18
        Joer, llevo media mañana peleándome con la instalación del php en una de las máquinas y todavía no lo he logrado hacer funcionar.

        Comentario

        • jmtella
          Administrator
          • Nov
          • 20594

          #19
          Originalmente publicado por jquilezl Ver Mensaje
          Joer, llevo media mañana peleándome con la instalación del php en una de las máquinas y todavía no lo he logrado hacer funcionar.


          O bien instalándolo desde el Web Platform Installer..

          Comentario

          • jmtella
            Administrator
            • Nov
            • 20594

            #20
            ¿Cómo vas?...

            Comentario

            • jquilezl
              Super Moderator
              • Dec
              • 724

              #21
              Tengo los cuatro servers montados, uno que hace de frontend con el ARR instalado. Los otros tres con IIS. En uno de éstos he instalado php, pero me queda completar la configuración.
              Llevo media tarde liado con el ARR. Los documentos que hay por Internet no son muy explicativos que digamos. He creado reglas de url rewrite, configurándoles condiciones de tipo {HTTP_HOST} con patrón coindidente con la url pública que quiero redirigir (p.e. http://www.gericom.es*) y acción Redirigir a "http://srvinternal01.servers.es", y así para los tres, pero no me funciona (la url interna es alcanzable si la tecleo directamente). También he probado en lugar de esto a crear tres granjas de un servidor (el srvinternalxx correspondiente) y en lugar de redirigir, decirle que la acción de cada regla es enrutar a la granja correspondiente.
              Ahora no puedo seguir; me parece que mañana borraré toda la configuración del server frontend y volveré a empezar. Alguna pistilla se agradecería, pues seguro que me estoy dejando algo que luego será evidente.

              Comentario

              • jmtella
                Administrator
                • Nov
                • 20594

                #22
                Originalmente publicado por jquilezl Ver Mensaje
                Tengo los cuatro servers montados, uno que hace de frontend con el ARR instalado. Los otros tres con IIS. En uno de éstos he instalado php, pero me queda completar la configuración.
                Llevo media tarde liado con el ARR. Los documentos que hay por Internet no son muy explicativos que digamos. He creado reglas de url rewrite, configurándoles condiciones de tipo {HTTP_HOST} con patrón coindidente con la url pública que quiero redirigir (p.e. http://www.gericom.es*) y acción Redirigir a "http://srvinternal01.servers.es", y así para los tres, pero no me funciona (la url interna es alcanzable si la tecleo directamente). También he probado en lugar de esto a crear tres granjas de un servidor (el srvinternalxx correspondiente) y en lugar de redirigir, decirle que la acción de cada regla es enrutar a la granja correspondiente.
                Ahora no puedo seguir; me parece que mañana borraré toda la configuración del server frontend y volveré a empezar. Alguna pistilla se agradecería, pues seguro que me estoy dejando algo que luego será evidente.
                Por si te sirve de pista te dejo el web.config generado (es imprescindible definir las variables en el server HTTP_X_ORIGINAL_ACCEPT_ENCODING y la HTTP_ACCEPT_ENCODING o dará un error por compresión de encabezados y poner por tanto las reglas que ves en preconditions en la parte inferior.

                Spoiler: mostrar

                Código:
                <?xml version="1.0" encoding="UTF-8"?>
                <configuration>
                    <system.webServer>
                        <rewrite>
                            <rules>
                                <rule name="ReverseProxyInboundRule4" stopProcessing="true">
                                    <match url="(.*)" />
                                    <action type="Rewrite" url="http://192.168.4.162/{R:1}" />
                                    <conditions>
                                        <add input="{HTTP_HOST}" pattern="rkey.es" />
                                    </conditions>
                                    <serverVariables>
                                        <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
                                        <set name="HTTP_ACCEPT_ENCODING" value="" />
                                    </serverVariables>
                                </rule>
                                <rule name="ReverseProxyInboundRule3f" stopProcessing="true">
                                    <match url="(.*)" />
                                    <action type="Rewrite" url="https://jmtella.com/foro/{R:1}" />
                                    <conditions>
                                        <add input="{HTTP_HOST}" pattern="foro.jmtella.com" />
                                    </conditions>
                                    <serverVariables>
                                        <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
                                        <set name="HTTP_ACCEPT_ENCODING" value="" />
                                    </serverVariables>
                                </rule>
                                <rule name="ReverseProxyInboundRule3fs" stopProcessing="true">
                                    <match url="(.*)" />
                                    <action type="Rewrite" url="https://jmtella.com/foro/{R:1}" />
                                    <conditions>
                                        <add input="{HTTP_HOST}" pattern="foros.jmtella.com" />
                                    </conditions>
                                    <serverVariables>
                                        <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
                                        <set name="HTTP_ACCEPT_ENCODING" value="" />
                                    </serverVariables>
                                </rule>
                                <rule name="ReverseProxyInboundRule3fsn" stopProcessing="true">
                                    <match url="(.*)" />
                                    <action type="Rewrite" url="https://jmtella.com/foro/{R:1}" />
                                    <conditions>
                                        <add input="{HTTP_HOST}" pattern="wnews.jmtella.com" />
                                    </conditions>
                                    <serverVariables>
                                        <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
                                        <set name="HTTP_ACCEPT_ENCODING" value="" />
                                    </serverVariables>
                                </rule>
                                <rule name="ReverseProxyInboundRule3" stopProcessing="true">
                                    <match url="(.*)" />
                                    <action type="Rewrite" url="http://192.168.4.158/{R:1}" />
                                    <conditions>
                                        <add input="{HTTP_HOST}" pattern="foros.jmtella.es" />
                                    </conditions>
                                    <serverVariables>
                                        <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
                                        <set name="HTTP_ACCEPT_ENCODING" value="" />
                                    </serverVariables>
                                </rule>
                                <rule name="ReverseProxyInboundRule2" stopProcessing="true">
                                    <match url="(foro.*|oficina.*)" />
                                    <action type="Rewrite" url="http://192.168.4.57/{R:1}" />
                                    <conditions>
                                        <add input="{CACHE_URL}" pattern="^(https?)://" />
                                    </conditions>
                                    <serverVariables>
                                        <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
                                        <set name="HTTP_ACCEPT_ENCODING" value="" />
                                    </serverVariables>
                                </rule>
                                <rule name="ReverseProxyInboundRule1" stopProcessing="true">
                                    <match url="(.*)" />
                                    <action type="Rewrite" url="http://192.168.4.138/{R:1}" />
                                    <conditions>
                                        <add input="{CACHE_URL}" pattern="^(https?)://" />
                                    </conditions>
                                    <serverVariables>
                                        <set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
                                        <set name="HTTP_ACCEPT_ENCODING" value="" />
                                    </serverVariables>
                                </rule>
                            </rules>
                              <outboundRules>
                                <rule name="ReverseProxyOutboundRule4" preCondition="ResponseIsHtml1">
                                    <match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^http(s)?://192.168.4.162/(.*)" />
                                    <action type="Rewrite" value="http{R:1}://rkey.es/{R:2}" />
                                </rule>
                                <rule name="ReverseProxyOutboundRule3" preCondition="ResponseIsHtml1">
                                    <match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^http(s)?://192.168.4.158/(.*)" />
                                    <action type="Rewrite" value="http{R:1}://foros.jmtella.es/{R:2}" />
                                </rule>
                                <rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1">
                                    <match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^http(s)?://192.168.4.138/(.*)" />
                                    <action type="Rewrite" value="http{R:1}://jmtella.com/{R:2}" />
                                </rule>
                                  <rule name="ReverseProxyOutboundRule2" preCondition="ResponseIsHtml1">
                                    <match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^http(s)?://192.168.4.57/(.*)" />
                                    <action type="Rewrite" value="http{R:1}://jmtella.com/{R:2}" />
                                </rule>
                                  <rule name="RestoreAcceptEncoding" preCondition="NeedsRestoringAcceptEncoding">
                                    <match serverVariable="HTTP_ACCEPT_ENCODING" pattern="^(.*)" />
                                    <action type="Rewrite" value="{HTTP_X_ORIGINAL_ACCEPT_ENCODING}" />
                                </rule>
                                  <preConditions>
                                    <preCondition name="ResponseIsHtml1">
                                        <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
                                    </preCondition>
                                    <preCondition name="NeedsRestoringAcceptEncoding">
                                        <add input="{HTTP_X_ORIGINAL_ACCEPT_ENCODING}" pattern=".+" />
                                    </preCondition>
                                </preConditions>
                            </outboundRules>
                        </rewrite>
                        <httpErrors>
                            <remove statusCode="404" subStatusCode="-1" />
                            <error statusCode="404" prefixLanguageFilePath="" path="https://jmtella.com/jmt" responseMode="Redirect" />
                        </httpErrors>
                    </system.webServer>
                </configuration>

                Comentario

                • jmtella
                  Administrator
                  • Nov
                  • 20594

                  #23
                  Como puedes ver...ni es nada intuitivo la solución completa, ni tan siquiera existe "verdades" en Google...
                  Por cierto, hay otro problema, que es la identificación de la IP remota en los servers internos...ya que los servers internos siempre se creeran que la remota es el frontend.

                  Esto te lo dejo para que lo pienses también... y lo soluciones

                  Comentario

                  • jmtella
                    Administrator
                    • Nov
                    • 20594

                    #24
                    Originalmente publicado por jmtella Ver Mensaje
                    Como puedes ver...ni es nada intuitivo la solución completa, ni tan siquiera existe "verdades" en Google...
                    Por cierto, hay otro problema, que es la identificación de la IP remota en los servers internos...ya que los servers internos siempre se creeran que la remota es el frontend.

                    Esto te lo dejo para que lo pienses también... y lo soluciones
                    Y por cierto, aunque parezca que te lo he resuelto, lo bonito empieza ahora..si quieres comentamos el web.config y lo que hace cada parte...

                    Comentario

                    • jmtella
                      Administrator
                      • Nov
                      • 20594

                      #25
                      Originalmente publicado por jmtella Ver Mensaje
                      Como puedes ver...ni es nada intuitivo la solución completa, ni tan siquiera existe "verdades" en Google...
                      Por cierto, hay otro problema, que es la identificación de la IP remota en los servers internos...ya que los servers internos siempre se creeran que la remota es el frontend.

                      Esto te lo dejo para que lo pienses también... y lo soluciones
                      Es decir, solucionar el que salgan bien las IP's...ya que una web que se precie debe controlar (o poderlo hacer) y auditar a los clientes remotos.

                      Comentario

                      • jquilezl
                        Super Moderator
                        • Dec
                        • 724

                        #26
                        Vale, me faltaban las dos variables de servidor. Por cierto, en la máscara de las condiciones veo que no pones asteriscos ni el http:// delante.

                        Comentario

                        • jmtella
                          Administrator
                          • Nov
                          • 20594

                          #27
                          Originalmente publicado por jquilezl Ver Mensaje
                          Vale, me faltaban las dos variables de servidor. Por cierto, en la máscara de las condiciones veo que no pones asteriscos ni el http:// delante.
                          Y la vuelta se captura por IP...y mas pequeños detalles que hacen que si no, no funcione... Anda...que no es puñetero el muy cabrito...

                          Comentario

                          • jquilezl
                            Super Moderator
                            • Dec
                            • 724

                            #28
                            Y tanto. Como para pensar que se instalaba y poco más. Mañana te contaré.

                            Comentario

                            • jmtella
                              Administrator
                              • Nov
                              • 20594

                              #29
                              Originalmente publicado por jquilezl Ver Mensaje
                              Y tanto. Como para pensar que se instalaba y poco más. Mañana te contaré.
                              ¿que? ¿abandonao'?...

                              Comentario

                              • jquilezl
                                Super Moderator
                                • Dec
                                • 724

                                #30
                                Je, que algunos trabajamos saliendo a las 5:30 de casa y llegando a cualquier hora indecente...
                                Ayer imposible, y hoy estoy liado peleándome con la conexión a Internet de Vodafone que me ha bajado de 300 a menos de 1 Mbps.
                                Pero no te preocupes, que en cuanto tenga un mínimo de tiempo sigo con ello. Se me ha quedado el gusanillo y no lo voy a dejar sin terminar de hacerlo funcionar.

                                Comentario

                                Trabajando...
                                X