Métodos de enrutamiento de Front DoorFront Door routing methods

Azure Front Door admite distintos métodos de enrutamiento del tráfico para determinar cómo enrutar el tráfico HTTP/HTTPS a los diversos puntos de conexión de servicio.Azure Front Door supports different kinds of traffic-routing methods to determine how to route your HTTP/HTTPS traffic to different service endpoints. Cuando las solicitudes de cliente llegan a Front Door, el método de enrutamiento configurado se aplica para garantizar que las solicitudes se reenvían a la mejor instancia de back-end.When your client requests reaching Front Door, the configured routing method gets applied to ensure the requests are forwarded to the best backend instance.

En Front Door hay cuatro métodos de enrutamiento de tráfico disponibles:There are four traffic routing methods available in Front Door:

  • Latencia: el enrutamiento basado en la latencia garantiza que las solicitudes se envían a los back-ends con menor latencia aceptables dentro de un intervalo de confidencialidad.Latency: The latency-based routing ensures that requests are sent to the lowest latency backends acceptable within a sensitivity range. Básicamente, las solicitudes de usuario se envían al conjunto de servidores back-end "más cercanos" con respecto a la latencia de red.Basically, your user requests are sent to the "closest" set of backends in respect to network latency.
  • Prioridad: puede asignar prioridades a los diferentes servidores back-end cuando desee configurar un servidor back-end principal que sirva todo el tráfico.Priority: You can assign priorities to your backends when you want to configure a primary backend to service all traffic. El servidor back-end secundario puede ser una copia de seguridad en caso de que el servidor back-end principal deje de estar disponible.The secondary backend can be a backup in case the primary backend becomes unavailable.
  • Ponderado: puede asignar peso a los servidores back-end si desea distribuir el tráfico entre un conjunto de ellos.Weighted: You can assign weights to your backends when you want to distribute traffic across a set of backends. Tanto si desea una distribución uniforme o de acuerdo con los coeficientes de peso.Whether you want to evenly distribute or according to the weight coefficients.
  • Afinidad de sesión: puede configurar la afinidad de sesión de los hosts o dominios de front-end para asegurarse de que las solicitudes del mismo usuario final se envían al mismo back-end.Session Affinity: You can configure session affinity for your frontend hosts or domains to ensure requests from the same end user gets sent to the same backend.

Todas las configuraciones de Front Door incluyen la supervisión del estado de mantenimiento de los servidores back-end y la conmutación por error global instantánea automatizada.All Front Door configurations include monitoring of backend health and automated instant global failover. Para más información, consulte Front Door Backend Monitoring (Supervisión de servidores back-end en Front Door).For more information, see Front Door Backend Monitoring. Front Door puede funcionar con un método de enrutamiento único.Your Front Door can work based off of a single routing method. Pero en función de las necesidades de la aplicación, también puede combinar varios métodos de enrutamiento para crear una topología de enrutamiento óptima.But depending on your application needs, you can also combine multiple routing methods to build an optimal routing topology.

Enrutamiento del tráfico basado en la latencia más bajaLowest latencies based traffic-routing

La capacidad de respuesta de las aplicaciones se puede mejorar con la implementación de servidores back-end en dos o más ubicaciones del planeta, al enrutar del tráfico al destino "más cercano" a los usuarios finales.Deploying backends in two or more locations across the globe can improve the responsiveness of your applications by routing traffic to the destination that is 'closest' to your end users. El método de enrutamiento de tráfico predeterminado para la configuración de Front Door reenvía las solicitudes de los usuarios finales al servidor back-end más cercano al entorno de Front Door que recibió la solicitud.The default traffic-routing method for your Front Door configuration forwards requests from your end users to the closest backend of the Front Door environment that received the request. En combinación con la arquitectura Anycast de Azure Front Door, este enfoque garantiza que cada uno de los usuarios finales obtendrá el máximo rendimiento personalizado según su ubicación.Combined with the Anycast architecture of Azure Front Door, this approach ensures that each of your end users get maximum performance personalized based on their location.

El servidor back-end "más cercano" no es necesariamente el más próximo en cuanto a distancia geográfica.The 'closest' backend isn't necessarily closest as measured by geographic distance. En su lugar, Front Door mide la latencia de red para determinar cuál es el servidor back-end más cercano.Instead, Front Door determines the closest backends by measuring network latency. Obtenga más información sobre la arquitectura de enrutamiento de Front Door.Read more about Front Door's routing architecture.

El siguiente es el flujo de decisión general:Below is the overall decision flow:

Servidores back-end disponiblesAvailable backends PrioridadPriority Señal de latencia (basada en sondeo de estado)Latency signal (based on health probe) PesosWeights
En primer lugar, seleccione todos los servidores back-end que estén habilitados y devuelvan un estado correcto (200 OK) en el sondeo de estado.First, select all backends that are enabled and returned healthy (200 OK) for the health probe. Si hay seis servidores back-end, A, B, C, D, E y F y, entre ellos, C está en mal estado y E está deshabilitado.If there are six backends A, B, C, D, E, and F, and among them C is unhealthy and E is disabled. La lista de servidores back-end disponible es A, B, D y F.The list of available backends is A, B, D, and F. Después, se seleccionan los servidores back-end de mayor prioridad entre los que estén disponibles.Next, the top priority backends among the available ones are selected. Por ejemplo, los servidores back-end A, B y D tienen prioridad 1 y el servidor back-end F tiene prioridad 2.If backend A, B, and D have priority 1 and backend F has a priority of 2. Entonces, los servidores back-end seleccionados serán A, B y D.Then, the selected backends will be A, B, and D. Seleccione los servidores back-end con un intervalo de latencia (menos latencia menor sensibilidad a la latencia, expresada en milisegundos).Select the backends with latency range (least latency & latency sensitivity in ms specified). Si el servidor back-end A está a 15 ms, B a 30 ms y D a 60 ms del entorno de Front Door al que llegó la solicitud, y la sensibilidad a la latencia es 30 ms, el grupo de menor latencia está formado por los servidores back-end A y B, puesto que D está a más de 30 ms del servidor back-end más cercano, que es A.If backend A is 15 ms, B is 30 ms and D is 60 ms away from the Front Door environment where the request landed, and latency sensitivity is 30 ms, then the lowest latency pool consist of backend A and B, because D is beyond 30 ms away from the closest backend that is A. Por último, Front Door realizará una distribución round robin del tráfico entre los servidores back-end del grupo seleccionado, en la proporción especificada por su peso.Lastly, Front Door will round robin the traffic among the final selected pool of backends in the ratio of weights specified. Por ejemplo, si un servidor back-end tiene un peso de 5 y el servidor back-end B tiene un peso de 8, el tráfico se distribuirá en la proporción 5:8 entre el los servidores back-end A y B.Say, if backend A has a weight of 5 and backend B has a weight of 8, then the traffic will be distributed in the ratio of 5:8 among backends A and B.

Nota

De forma predeterminada, la propiedad de sensibilidad a la latencia se establece en 0 ms; es decir, la solicitud siempre se reenvía al servidor back-end más rápido disponible.By default, the latency sensitivity property is set to 0 ms, that is, always forward the request to the fastest available backend.

Enrutamiento de tráfico basado en la prioridadPriority-based traffic-routing

Habitualmente, las organizaciones desean ofrecer alta disponibilidad de sus servicios y, para ello, implementan varios servicios de reserva en caso de que su servicio principal se vuelva inactivo.Often an organization wants to provide high availability for their services by deploying more than one backup service in case the primary one goes down. En la industria, esta topología también se conoce como topología de implementación de activo/pasivo o activo/en espera.Across the industry, this topology is also referred to as Active/Standby or Active/Passive deployment topology. El método de enrutamiento de tráfico de "Prioridad" permite que los clientes de Azure implementen fácilmente este patrón de conmutación por error.The 'Priority' traffic-routing method allows Azure customers to easily implement this failover pattern.

La instancia de Front Door predeterminada contiene una lista de servidores back-end con la misma prioridad.Your default Front Door contains an equal priority list of backends. De forma predeterminada, Front Door envía tráfico solo a los servidores back-end de prioridad superior (valor de prioridad más bajo); es decir, el conjunto principal de servidores back-end.By default, Front Door sends traffic only to the top priority backends (lowest value for priority) that is, the primary set of backends. Si los servidores back-end principales no están disponibles, Front Door enruta el tráfico al conjunto secundario de servidores back-end (segundo valor de prioridad más bajo).If the primary backends aren't available, Front Door routes the traffic to the secondary set of backends (second lowest value for priority). Si los servidores back-end principal y secundario no están disponibles, el tráfico pasa al tercero, y así sucesivamente.If both the primary and secondary backends aren't available, the traffic goes to the third, and so on. Disponibilidad de los servidores back-end se basa en el estado configurado (habilitado o deshabilitado) y en el estado de mantenimiento actual del servidor back-end determinado por los sondeos de estado.Availability of the backend is based on the configured status (enabled or disabled) and the ongoing backend health status as determined by the health probes.

Configuración de la prioridad de los servidores back-endConfiguring priority for backends

Cada uno de los servidores back-end del grupo dentro de la configuración de Front Door tiene una propiedad llamada "Priority", que puede ser un número entre 1 y 5.Each backend in your backend pool of the Front Door configuration has a property called 'Priority', which can be a number between 1 and 5. Con Azure Front Door, la prioridad de cada servidor de back-end se configura explícitamente con esta propiedad.With Azure Front Door, you configure the backend priority explicitly using this property for each backend. Esta propiedad es un valor comprendido entre 1 y 5.This property is a value between 1 and 5. Los valores más bajos representan una prioridad más alta.Lower values represent a higher priority. Los servidores back-ends pueden compartir los valores de prioridad.Backends can share priority values.

Método de enrutamiento de tráfico PonderadoWeighted traffic-routing method

El método de enrutamiento de tráfico "Ponderado" le permite distribuir el tráfico uniformemente o utilizar una ponderación predefinida.The 'Weighted' traffic-routing method allows you to distribute traffic evenly or to use a pre-defined weighting.

En el método de enrutamiento de tráfico ponderado, se asigna un peso a cada servidor back-end en la configuración del grupo de servidores back-end en Front Door.In the Weighted traffic-routing method, you assign a weight to each backend in the Front Door configuration of your backend pool. El peso es un entero comprendido entre 1 y 1000.The weight is an integer from 1 to 1000. Este parámetro utiliza un peso predeterminado de "50".This parameter uses a default weight of '50'.

Con la lista de servidores back-end disponibles con sensibilidad a la latencia aceptable, el tráfico se distribuye con un mecanismo round-robin en la proporción especificada por el peso.With the list of available backends that have an acceptable latency sensitivity, the traffic gets distributed with a round-robin mechanism using the ratio of weights specified. Si la sensibilidad a la latencia se establece en 0 milisegundos, esta propiedad no surtirá efecto a menos que haya dos servidores back-end con la misma latencia de red.If the latency sensitivity gets set to 0 milliseconds, then this property doesn't take effect unless there are two backends with the same network latency.

El método ponderado permite algunos escenarios útiles:The weighted method enables some useful scenarios:

  • Actualización gradual de aplicaciones: asigne un porcentaje del tráfico que se redirigirá a un nuevo servidor back-end y aumente el tráfico gradualmente hasta que esté a la par con otros servidores back-end.Gradual application upgrade: Gives a percentage of traffic to route to a new backend, and gradually increase the traffic over time to bring it at par with other backends.
  • Migración de aplicaciones a Azure: cree un perfil con servidores back-end de Azure y externos.Application migration to Azure: Create a backend pool with both Azure and external backends. Ajuste el peso de los servidores back-end para dar preferencia a los nuevos servidores back-end.Adjust the weight of the backends to prefer the new backends. Para configurar esto gradualmente, se pueden deshabilitar los nuevos servidores back-end y, a continuación, se les asigna el menor peso para ir aumentándolo lentamente a niveles en los que tomarán la mayor parte del tráfico.You can gradually set this up starting with having the new backends disabled, then assigning them the lowest weights, slowly increasing it to levels where they take most traffic. Por último, se deshabilitan los servidores back-end menos preferidos y se quitan del grupo.Then finally disabling the less preferred backends and removing them from the pool.
  • Expansión de la nube para conseguir capacidad adicional: expanda rápidamente una implementación local en la nube colocándola detrás de Front Door.Cloud-bursting for additional capacity: Quickly expand an on-premises deployment into the cloud by putting it behind Front Door. Cuando necesite capacidad adicional en la nube, puede agregar o habilitar más servidores back-end y especificar la porción de tráfico que va a cada uno.When you need extra capacity in the cloud, you can add or enable more backends and specify what portion of traffic goes to each backend.

Afinidad de sesiónSession Affinity

De forma predeterminada, sin afinidad de la sesión, Front Door reenvía las solicitudes que se originan en el mismo cliente a diferentes servidores back-end.By default, without session affinity, Front Door forwards requests originating from the same client to different backends. Algunas aplicaciones con estado o en determinados escenarios se prefiere que las solicitudes subsiguientes del mismo usuario lleguen al mismo servidor back-end que procesó la solicitud inicial.Some stateful applications or in certain scenarios ensuing requests from the same user prefers the same backend that processed the initial request. La característica de afinidad de sesión basada en cookies es útil cuando se quiere mantener una sesión de usuario en el mismo servidor back-end.The cookie-based session affinity feature is useful when you want to keep a user session on the same backend. Mediante cookies administradas,Azure Front Door puede dirigir el tráfico de una sesión de usuario al mismo servidor back-end para su procesamiento.Using managed cookies, Azure Front Door can direct ensuing traffic from a user session to the same backend for processing.

La afinidad de sesión puede habilitarse en el nivel de host de front-end para cada uno de los dominios configurados (o subdominios).Session affinity can be enabled at a frontend host level that is for each of your configured domains (or subdomains). Una vez habilitada, Front Door agrega una cookie a la sesión del usuario.Once enabled, Front Door adds a cookie to the user's session. La afinidad de sesión basada en cookies permite a Front Door identificar usuarios diferentes, aunque estén detrás de la misma dirección IP lo que, a su vez, permite realizar una distribución más uniforme del tráfico entre los diferentes servidores back-end.Cookie-based session affinity allows Front Door to identify different users even if behind the same IP address, which in turn allows a more even distribution of traffic between your different backends.

La duración de la cookie es la misma que la sesión del usuario, porque Front Door actualmente solo admite cookies de sesión.The lifetime of the cookie is the same as the user's session, as Front Door currently only supports session cookie.

Nota

Los servidores proxy públicos pueden interferir con la afinidad de sesión.Public proxies may interfere with session affinity. El motivo es que, para establecer una sesión, Front Door tiene que agregar una cookie de afinidad de sesión a la respuesta, lo que no se puede realizar si la respuesta se puede almacenar en caché porque interrumpiría las cookies de otros clientes que soliciten el mismo recurso.This is because establishing a session requires Front Door to add a session affinity cookie to the response, which cannot be done if the response is cacheable as it would disrupt the cookies of other clients requesting the same resource. Para evitar este problema, la afinidad de sesión no se establecerá si, al intentarlo, el servidor back-end envía una respuesta almacenable en caché.To protect against this, session affinity will not be established if the backend sends a cacheable response when this is attempted. Si la sesión ya se ha establecido, no importa si la respuesta del back-end se puede almacenar en caché.If the session has already been established, it does not matter if the response from the backend is cacheable. La afinidad de sesión se establecerá en las siguientes circunstancias, a menos que la respuesta tenga un código de estado HTTP 304:Session affinity will be established in the following circumstances, unless the response has an HTTP 304 status code:

  • La respuesta tiene establecidos valores específicos para el encabezado Cache-Control, que impiden el almacenamiento en caché, por ejemplo, "private" o "no-store".The response has specific values set for the Cache-Control header that prevents caching, such as "private" or no-store".
  • La respuesta contiene un encabezado Authorization que no ha expirado.The response contains an Authorization header that has not expired.
  • La respuesta tiene un código de estado HTTP 302.The response has an HTTP 302 status code.

Pasos siguientesNext steps