En este documento, se proporcionan instrucciones para configurar un balanceador de cargas de red del proxy externo con backends de grupo de instancias de VM y proxy SSL de destino. Antes de comenzar, consulta la descripción general del balanceador de cargas de red del proxy externo para obtener información sobre cómo funcionan estos balanceadores.
Descripción general de la configuración
En este ejemplo, se muestra cómo configurar un balanceador de cargas de red del proxy externo para un servicio que existe en dos regiones: región A y B. Deberás configurar lo que se describe a continuación:
- Cuatro instancias repartidas en dos regiones
- Grupos de instancias para mantener las instancias
- Componentes del backend, que incluyen lo que se describe a continuación:
- Verificación de estado: supervisa el estado de la instancia.
- Servicio de backend: supervisa los grupos de instancias y evita que excedan el uso configurado.
- Backends: mantienen los grupos de instancias.
- Componentes frontend, que incluyen lo que se describe a continuación:
- Incluyen un recurso de certificado SSL. Puedes usar un certificado autoadministrado, en el que proporcionas tu certificado SSL, o uno administrado por Google, en el que Google emite un certificado válido para todos tus dominios. Para obtener más información, consulta los Tipos de certificados SSL.
- El propio proxy SSL con su certificado SSL
- Una dirección IPv4 estática externa y una regla de reenvío que envíe el tráfico del usuario al proxy
- Una dirección IPv6 estática externa y una regla de reenvío que envíe el tráfico del usuario al proxy
- Una regla de firewall que permita el tráfico desde el balanceador de cargas y el verificador de estado a las instancias.
- De manera opcional, una política de SSL para controlar las características de SSL que tu balanceador de cargas de proxy SSL negocia con los clientes.
Luego, probarás la configuración.
Permisos
Para seguir esta guía, debes poder crear instancias y modificar una red en un proyecto. Debes ser propietario o editor de un proyecto o tener todas las siguientes funciones de IAM de Compute Engine:
Tarea | Función requerida |
---|---|
Crear redes, subredes y componentes del balanceador de cargas | Administrador de redes |
Agrega y quita reglas de firewall | Administrador de seguridad |
Crea instancias | Administrador de instancias de Compute |
Si deseas obtener más información, consulta las siguientes guías:
Configura la red y las subredes
Para crear la red y la subred de ejemplo, sigue estos pasos:
Console
Para admitir el tráfico IPv4 e IPv6, sigue estos pasos:
En la consola de Google Cloud, ve a la página Redes de VPC.
Haz clic en Crear red de VPC.
Ingresa un Nombre para la red.
Opcional: Si deseas configurar rangos de direcciones IPv6 internos en subredes de esta red, completa estos pasos:
- En Rango de IPv6 interno de ULA de la red de VPC, selecciona Habilitado.
En Asignar rango de IPv6 interno, selecciona Automáticamente o Manualmente.
Si seleccionas Manualmente, ingresa un rango
/48
que pertenezca al rangofd20::/20
. Si el rango está en uso, se te solicitará que proporciones un rango diferente.
En Modo de creación de subredes, selecciona Personalizar.
En la sección Subred nueva, configura los siguientes campos:
- En el campo Nombre, proporciona un nombre para la subred.
- En el campo Región, selecciona una región.
- En Tipo de pila IP, selecciona IPv4 e IPv6 (pila doble).
En el campo Rango de direcciones IP, ingresa un rango de direcciones IP. Este es el rango IPv4 principal de la subred.
Aunque puedes configurar un rango de direcciones IPv4 para la subred, no puedes elegir el rango de direcciones IPv6 para lo siguiente: la subred. Google proporciona un bloque CIDR IPv6 de tamaño fijo (
/64
).En Tipo de acceso IPv6, selecciona Externo.
Haz clic en Listo.
Para agregar una subred en una región diferente, haz clic en Agregar subred y repite los pasos anteriores.
Haz clic en Crear.
Para que solo sea compatible con el tráfico IPv4, sigue estos pasos:
En la consola de Google Cloud, ve a la página Redes de VPC.
Haz clic en Crear red de VPC.
En el campo Nombre, ingresa un nombre para la red.
En Modo de creación de subredes, selecciona Personalizar.
En la sección Subred nueva, configura lo siguiente:
- En el campo Nombre, proporciona un nombre para la subred.
- En el campo Región, selecciona una región.
- En Tipo de pila de IP, elige IPv4 (pila única).
- En el campo Rango de direcciones IP, ingresa el rango IPv4 principal para la subred.
Haz clic en Listo.
Para agregar una subred en una región diferente, haz clic en Agregar subred y repite los pasos anteriores.
Haz clic en Crear.
gcloud
Crea la red de VPC en modo personalizado:
gcloud compute networks create NETWORK \ [ --enable-ula-internal-ipv6 [ --internal-ipv6-range=ULA_IPV6_RANGE ]] \ --switch-to-custom-subnet-mode
Dentro de la red, crea una subred para backends.
En el tráfico IPv4 e IPv6, usa el siguiente comando para actualizar subred:
gcloud compute networks subnets create SUBNET \ --stack-type=IPV4_IPv6 \ --ipv6-access-type=EXTERNAL \ --network=NETWORK \ --region=REGION_A
gcloud compute networks subnets create SUBNET_B \ --stack-type=IPV4_IPv6 \ --ipv6-access-type=EXTERNAL \ --network=NETWORK \ --region=REGION_B
Para el tráfico IPv4, usa el siguiente comando:
gcloud compute networks subnets create SUBNET \ --network=NETWORK \ --stack-type=IPV4_ONLY \ --range=10.1.2.0/24 \ --region=REGION_A
gcloud compute networks subnets create SUBNET_B \ --stack-type=IPV4_ONLY \ --ipv6-access-type=EXTERNAL \ --network=NETWORK \ --region=REGION_B
Reemplaza lo siguiente:
NETWORK
: es un nombre para la red de VPCULA_IPV6_RANGE
: es un prefijo/48
desde el rangofd20::/20
que usa Google para los rangos de subred IPv6 internos. Si no usas la marca--internal-ipv6-range
, Google selecciona un prefijo/48
para la redSUBNET
: un nombre de la subred
REGION_A
oREGION_B
: Es el nombre de la región
Configura instancias y grupos de instancias
En esta sección, se muestra cómo crear instancias y grupos de instancias y, luego, agregarlas a los grupos de instancias. Por lo general, un sistema de producción usaría grupos de instancias administrados basados en plantillas de instancias, pero esta configuración es más rápida para las pruebas iniciales.
Crea instancias
Crea estas instancias con la etiqueta ssl-lb
, que la regla de firewall usará más adelante.
Console
Crea instancias
En la consola de Google Cloud, ve a la página Instancias de VM.
Haz clic en Crear instancia.
Establece el Nombre como
vm-a1
.En Zona establece ZONE_A.
Haz clic en Opciones avanzadas.
Haz clic en Herramientas de redes y configura el siguiente campo:
- En el campo Etiquetas de red, ingresa
ssl-lb
yallow-health-check-ipv6
.
- En el campo Etiquetas de red, ingresa
En la sección Interfaces de red, haz clic en Editar y realiza los siguientes cambios:
- Selecciona la Red.
Selecciona una subred.
En el campo Tipo de pila de IP, selecciona IPv4 e IPv6 (pila doble).
Haz clic en Listo.
Haz clic en Administración. Ingresa la siguiente secuencia de comandos en el campo Secuencia de comandos de inicio.
sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>vm-a1</h1></body></html>' | sudo tee /var/www/html/index.html
Deja los valores predeterminados para el resto de los campos.
Haz clic en Crear.
Crea
vm-a2
con la misma configuración, pero con la secuencia de comandos de inicio establecida de la siguiente manera:sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>vm-a2</h1></body></html>' | sudo tee /var/www/html/index.html
Crea
vm-b1
con la misma configuración, pero con la zona establecida comoZONE_B
y la secuencia de comandos de inicio de la siguiente manera:sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>vm-b1</h1></body></html>' | sudo tee /var/www/html/index.html
Crea
vm-b2
con la misma configuración, pero con la zona establecida comoZONE_B
y la secuencia de comandos de inicio de la siguiente manera:sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>vm-b2</h1></body></html>' | sudo tee /var/www/html/index.html
gcloud
Crea
vm-a1
en la zonaZONE_A
.gcloud compute instances create vm-a1 \ --image-family debian-12 \ --image-project debian-cloud \ --tags ssl-lb \ --zone ZONE_A \ --metadata startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>vm-a1</h1></body></html>' | sudo tee /var/www/html/index.html EOF"
Crea
vm-a2
en la zonaZONE_A
.gcloud compute instances create vm-a2 \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=ssl-lb \ --zone=ZONE_A \ --metadata=startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>vm-a2</h1></body></html>' | sudo tee /var/www/html/index.html EOF"
Crea
vm-b1
en la zonaZONE_B
.gcloud compute instances create vm-b1 \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=ssl-lb \ --zone=ZONE_B \ --metadata=startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>vm-b1</h1></body></html>' | sudo tee /var/www/html/index.html EOF"
Crea
vm-b2
en la zonaZONE_B
.gcloud compute instances create vm-b2 \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=ssl-lb \ --zone=ZONE_B \ --metadata=startup-script="#! /bin/bash sudo apt-get update sudo apt-get install apache2 -y sudo a2ensite default-ssl sudo a2enmod ssl sudo service apache2 restart echo '<!doctype html><html><body><h1>vm-b2</h1></body></html>' | sudo tee /var/www/html/index.html EOF"
Crea un grupo de instancias para cada zona y agrega las instancias
Console
En la consola de Google Cloud, ve a la página Grupos de instancias.
Haz clic en Crear grupo de instancias.
Establece el campo Nombre como
instance-group-a
.En Zona establece
ZONE_A
.En Asignación de puertos, haz clic en Agregar puerto. Un balanceador de cargas envía tráfico a un grupo de instancias a través de un puerto con nombre. Crea un puerto con nombre para asignar el tráfico entrante a un número de puerto específico.
- Ingresa un Nombre de puerto
ssl-lb
y Números de puerto de443
.
- Ingresa un Nombre de puerto
En Definición de instancia, haz clic en Seleccionar instancias existentes.
En Instancias de VM, selecciona
vm-a1
yvm-a2
.Deja el resto de la configuración como está.
Haz clic en Crear.
Repite los pasos, pero configura la siguiente información:
- Nombre:
instance-group-b
- Zona:
ZONE_B
- Nombre del puerto de
ssl-lb
y Números de puerto de443
- Instancias: vm-b1 y vm-b2.
- Nombre:
Verifica si ahora tienes dos grupos de instancias, cada uno con dos instancias.
gcloud
Crea el grupo de instancias instance-group-a.
gcloud compute instance-groups unmanaged create instance-group-a --zone ZONE_A
Configura un puerto con nombre para el grupo de instancias.
gcloud compute instance-groups set-named-ports instance-group-a \ --named-ports=ssl-lb:443 \ --zone=ZONE_A
Agrega
vm-a1
yvm-a2
a instance-group-a.gcloud compute instance-groups unmanaged add-instances instance-group-a \ --instances=vm-a1,vm-a2 \ --zone=ZONE_A
Crea el grupo de instancias
instance-group-b
.gcloud compute instance-groups unmanaged create instance-group-b --zone ZONE_B
Configura un puerto con nombre para el grupo de instancias.
gcloud compute instance-groups set-named-ports instance-group-b \ --named-ports=ssl-lb:443 \ --zone=ZONE_B
Agrega
vm-b1
yvm-b2
a instance-group-b.gcloud compute instance-groups unmanaged add-instances instance-group-b \ --instances=vm-b1,vm-b2 \ --zone=ZONE_B
Ahora tienes un grupo de instancias en cada una de las dos regiones, cada una con dos instancias.
Crea una regla de firewall para el balanceador de cargas SSL
Configura el firewall para permitir el tráfico del balanceador de cargas y el verificador de estado a las instancias.
Console
En la consola de Google Cloud, ve a la página Políticas de firewall.
Haz clic en Crear regla de firewall.
En el campo Nombre, ingresa
allow-ssl-lb-and-health
.Selecciona la Red.
En Destinos, selecciona Etiquetas de destino especificadas.
Configura las Etiquetas de destino como
ssl-lb
.Configura Filtro de fuente como Rangos de IPv4.
Establece Rangos de IPv4 de origen en
130.211.0.0/22
y35.191.0.0/16
.En Protocolos y puertos, establece Protocolos y puertos especificados como
tcp:443
.Haz clic en Crear.
gcloud
gcloud compute firewall-rules create allow-ssl-lb-and-health \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=ssl-lb \ --allow=tcp:443
Si usas un certificado administrado por Google, confirma que el estado de tu recurso de certificado sea ACTIVE. Para obtener más información, consulta Estado de los recursos de certificado SSL administrado por Google.
gcloud compute ssl-certificates list
Crea una regla de firewall de verificación de estado IPv6
Asegúrate de tener una regla de entrada aplicable a las instancias tiene balanceo de cargas y permite el tráfico desde Google Cloud, sistemas de verificación de estado (2600:2d00:1:b029::/64
). En este ejemplo se utiliza la etiqueta de destino allow-health-check-ipv6
para identificar las instancias de VM cómo se aplica.
Sin esta regla de firewall, la regla predeterminada de denegación de entrada bloquea el tráfico IPv6 entrante a las instancias de backend.
Console
En la consola de Google Cloud, ve a la página Políticas de firewall.
Para permitir el tráfico de subred de IPv6, vuelve a hacer clic en Crear regla de firewall y, luego, ingresa la siguiente información:
- Nombre:
fw-allow-lb-access-ipv6
- Red:
NETWORK
- Prioridad:
1000
- Dirección del tráfico: Entrada
- Destinos: Etiquetas de destino especificadas
- Etiquetas de destino, ingresa
allow-health-check-ipv6
- Filtro de fuente: Rangos de IPv6
- Rangos de IPv6 de origen:
2600:2d00:1:b029::/64
,2600:2d00:1:1::/64
- Protocols y puertos: Permitirlos todos
- Nombre:
Haz clic en Crear.
gcloud
Crea la regla de firewall fw-allow-lb-access-ipv6
para permitir la comunicación con la subred:
gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \ --network=NETWORK \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check-ipv6 \ --source-ranges=2600:2d00:1:b029::/64,2600:2d00:1:1::/64 \ --rules=all
Configura el balanceador de cargas
Console
Inicia la configuración
En la consola de Google Cloud, ve a la página Balanceo de cargas.
- Haz clic en Crear balanceador de cargas.
- En Tipo de balanceador de cargas, selecciona Balanceador de cargas de red (TCP/UDP/SSL) y haz clic en Siguiente.
- En Proxy o transferencia, selecciona Balanceador de cargas de proxy y haz clic en Siguiente.
- En Orientado al público o interno, selecciona Orientado al público (externo) y haz clic en Siguiente.
- En Implementación global o de una sola región, selecciona Mejor para cargas de trabajo globales y haz clic en Siguiente.
- En Generación de balanceadores de cargas, selecciona Balanceador de cargas de red de proxy externo global y haz clic en Siguiente.
- Haz clic en Configurar.
Configuración básica
Configura el campo Nombre como my-ssl-lb
.
Configuración de backend
- Haz clic en Configuración de backend.
- En Tipo de backend, selecciona Grupos de instancias.
- Configura el Protocolo en SSL.
- En la lista Política de selección de direcciones IP, selecciona lo siguiente: Preferir IPv6
- En Puerto con nombre, ingresa
ssl-lb
. - Acepta el valor predeterminado para eltiempo de espera.
- Deja el Tipo de backend establecido en Grupos de instancias.
- Configura el primer backend:
- En Nuevo backend, selecciona el grupo de instancias
instance-group-a
. - Establece Números de puerto en
443
. - Conserva los valores predeterminados restantes.
- En Nuevo backend, selecciona el grupo de instancias
- Configura el segundo backend:
- Haz clic en Agregar backend.
- Selecciona el grupo de instancias
instance-group-b
. - Establece Números de puerto en
443
. - Haz clic en Listo.
- Configura la verificación de estado:
- En Verificación de estado, selecciona Crear verificación de estado.
- Establece el campo Nombre de la verificación de estado en
my-ssl-health-check
. - En Protocolo, selecciona SSL.
- Conserva los valores predeterminados restantes.
- Haz clic en Guardar y continuar.
- En la consola de Google Cloud, verifica que haya una marca de verificación junto a Configuración de backend. De lo contrario, verifica que hayas completado todos los pasos.
Configuración de frontend
- Haz clic en Configuración de frontend.
- Ingresa un Nombre de
my-ssl-lb-forwarding-rule
. - En Protocolo, selecciona SSL.
- En Dirección IP, selecciona Crear dirección IP.
- Ingresa un Nombre de
ssl-lb-static-ipv4
. - Haz clic en Reservar.
- Ingresa un Nombre de
- En Certificado selecciona Crear un certificado nuevo.
- Ingresa un Nombre de
my-ssl-cert
. - Si eliges Subir certificado, sigue estos pasos:
- Pega el certificado o haz clic en Subir para navegar hasta el archivo del certificado.
- Pega la clave privada o haz clic en Subir para navegar hasta el archivo de claves privadas.
- Si seleccionas Crear certificado administrado por Google, ingresa un Dominio.
- Para ingresar dominios adicionales, haz clic en Agregar dominio.
- Haz clic en Crear.
- Para agregar otros recursos de certificado, además del recurso de certificado SSL principal, haz clic en Certificados adicionales. Luego, selecciona otro certificado en el menú Certificados o haz clic en Crear un certificado nuevo y sigue las instrucciones anteriores.
- (Opcional) Para crear una política de SSL:
- En Política de SSL, selecciona Crear una política.
- Ingresa un Nombre de
my-ssl-policy
. - En Versión mínima de TLS, selecciona TLS 1.0.
- En Perfil, selecciona Moderno. Se mostrarán las Funciones habilitadas y las Funciones inhabilitadas.
- Haz clic en Guardar.
- Opcional: Activa Protocolo de proxy.
- Haz clic en Listo.
- Verifica que haya una marca de verificación verde junto a Configuración de frontend en la consola de Google Cloud. De lo contrario, verifica que hayas completado todos los pasos anteriores.
- Haz clic en Listo.
- Agrega la primera regla de reenvío:
Revisa y finaliza
- Haz clic en Revisar y finalizar.
- Revisa la configuración del balanceador de cargas.
- Opcional: Haz clic en Código equivalente a fin de ver la solicitud a la API de REST que se usará para crear el balanceador de cargas.
- Haz clic en Crear.
gcloud
- Crea una verificación de estado.
gcloud compute health-checks create ssl my-ssl-health-check --port=443
- Crea un servicio de backend.
gcloud beta compute backend-services create my-ssl-lb \ --load-balancing-scheme EXTERNAL_MANAGED \ --global-health-checks \ --protocol=SSL \ --port-name=ssl-lb \ --ip-address-selection-policy=PREFER_IPV6 \ --health-checks=my-ssl-health-check \ --timeout=5m \ --global
Como alternativa, puedes configurar la comunicación sin encriptar desde el balanceador de cargas a las instancias mediante
--protocol=TCP
. Agrega grupos de instancias a tu servicio de backend.
gcloud compute backend-services add-backend my-ssl-lb \ --instance-group=instance-group-a \ --instance-group-zone=ZONE_A \ --balancing-mode=UTILIZATION \ --max-utilization=0.8 \ --global
gcloud compute backend-services add-backend my-ssl-lb \ --instance-group=instance-group-b \ --instance-group-zone=ZONE_B \ --balancing-mode=UTILIZATION \ --max-utilization=0.8 \ --global
- Configura tu recurso de certificado SSL.
Si usas certificados autoadministrados, debes tener, al menos, un certificado SSL para subir. Si no es así, consulta Descripción general de los certificados SSL Cuando usas varios certificados SSL, debes crearlos uno por uno.
Si usas certificados SSL autoadministrados y no tienes una clave privada ni un certificado firmado, puedes crear y usar un certificado autofirmado a fin de realizar pruebas.
Si deseas crear un recurso de certificado SSL autoadministrado, haz lo siguiente:
gcloud compute ssl-certificates create my-ssl-cert \ --certificate=CRT_FILE_PATH \ --private-key=KEY_FILE_PATH
Si deseas crear un recurso de certificado SSL administrado por Google, haz lo siguiente:
gcloud compute ssl-certificates create www-ssl-cert \ --domains=DOMAIN_1,DOMAIN_2
- Configura un proxy SSL de destino.
Los balanceadores de cargas de red del proxy externos admiten la creación de un proxy SSL de destino que tenga de uno a quince certificados SSL. Antes de que ejecutes este comando, debes crear un recurso de certificado SSL para cada certificado.
Si quieres activar el encabezado de proxy, configúralo como
PROXY_V1
en lugar denone
. De manera opcional, puedes adjuntar una política de SSL al proxy de destino. Primero, crea la política.gcloud compute ssl-policies create my-ssl-policy \ --profile=MODERN \ --min-tls-version=1.0
Luego, adjunta la política al proxy de destino.
gcloud beta compute target-ssl-proxies create my-ssl-lb-target-proxy \ --backend-service=my-ssl-lb \ --ssl-certificates=[SSL_CERT_1][,[SSL_CERT_2],...] \ --ssl-policy=my-ssl-policy \ --proxy-header=NONE
- Reserva direcciones IP estáticas globales
Tus clientes usan estas direcciones IP para acceder a tu servicio de balanceo de cargas.
gcloud compute addresses create ssl-lb-static-ipv4 \ --ip-version=IPV4 \ --global
gcloud compute addresses create ssl-lb-static-ipv6 \ --ip-version=IPV6 \ --global
- Configura reglas de reenvío globales
Crea reglas de reenvío globales asociadas al proxy de destino. Reemplaza LB_STATIC_IP y LB_STATIC_IPV6 por las direcciones IP que generaste en Reserva direcciones IP estáticas globales.
gcloud beta compute forwarding-rules create my-ssl-lb-forwarding-rule \ --load-balancing-scheme EXTERNAL_MANAGED \ --global \ --target-ssl-proxy=my-ssl-lb-target-proxy \ --address=LB_STATIC_IP \ --ports=443
Conecta tu dominio al balanceador de cargas
Después de crear el balanceador de cargas, toma nota de la dirección IP asociada con este: por ejemplo, 30.90.80.100
. Para apuntar tu dominio al balanceador de cargas, crea un registro A
mediante tu servicio de registro de dominio. Si agregaste varios dominios a tu certificado SSL, debes agregar un registro A
para cada uno, que apunte a la dirección IP del balanceador de cargas. Por ejemplo, para crear registros A
para www.example.com
y example.com
, usa lo siguiente:
NAME TYPE DATA www A 30.90.80.100 @ A 30.90.80.100
Si usas Cloud DNS como proveedor de DNS, consulta Agrega, modifica y borra registros.
Prueba el balanceador de cargas
En tu navegador web, conéctate a tu dirección IP estática mediante HTTPS. En esta configuración de prueba, las instancias usan certificados autofirmados. Por lo tanto, verás una advertencia en tu navegador la primera vez que accedas a una página. Haz clic en la advertencia para ver la página real. Reemplaza IP_ADDRESS por la dirección IPv4 o IPv6 que creaste antes.
https://IP_ADDRESS
Deberías ver uno de los hosts de la región más cercana a ti. Vuelve a cargar la página hasta que veas la otra instancia de esa región. Para ver las instancias de la otra región, detén las instancias en la región más cercana.
Como alternativa, puedes usar curl
desde la línea de comandos de tu máquina local.
Si usas un certificado autofirmado en el proxy SSL, también debes especificar -k
. La opción curl -k
permite que curl funcione incluso si tienes un certificado autofirmado o no tienes ninguno. Si tienes un certificado normal, puedes quitar ese parámetro. Solo debes usar el parámetro -k
para probar tu propio sitio. En circunstancias normales, una cuenta el certificado es una medida de seguridad importante, y las advertencias del certificado no ignorarse.
Reemplaza IP_ADDRESS por la dirección IPv4 o IPv6 que creaste antes.
curl -k https://IP_ADDRESS
Si no puedes acceder al balanceador de cargas, prueba los pasos que se describen en Soluciona problemas de configuración.
Opciones de configuración adicionales
En esta sección se expande el ejemplo de configuración para proporcionar opciones de configuración alternativas y adicionales. Todas las tareas son opcionales. Puedes realizarlas en cualquier orden.
Protocolo PROXY para retener información de conexión del cliente
El balanceador de cargas de red de proxy finaliza las conexiones TCP del cliente y crea conexiones nuevas con las instancias. De forma predeterminada, no se conservan la IP de cliente original y la información del puerto.
Para conservar y enviar la información de conexión original a tus instancias, habilita el protocolo PROXY (versión 1). Este protocolo envía a la instancia un encabezado adicional que contiene la dirección IP de origen, la dirección IP de destino y los números de puerto como parte de la solicitud.
Asegúrate de que las instancias de backend del balanceador de cargas de red del proxy ejecuten servidores que admitan encabezados del protocolo PROXY. Si los servidores no están configurados para admitir encabezados del protocolo PROXY, las instancias de backend muestran respuestas vacías.
Si configuras el protocolo PROXY para el tráfico de los usuarios, también debes configurarlo para las verificaciones de estado. Si verificas el estado y entregas contenido en el mismo puerto, configura el --proxy-header
de la verificación de estado para que coincida con la configuración del balanceador de cargas.
Por lo general, el encabezado del protocolo PROXY será una sola línea de texto legible para el usuario con el siguiente formato:
PROXY TCP4 <client IP> <load balancing IP> <source port> <dest port>\r\n
En el siguiente ejemplo, se muestra un protocolo PROXY:
PROXY TCP4 192.0.2.1 198.51.100.1 15221 110\r\n
En el ejemplo anterior, la IP de cliente es 192.0.2.1
, la IP de balanceo de cargas es 198.51.100.1
, el puerto del cliente es 15221
y el puerto de destino es 110
.
Cuando no se sabe la dirección IP de cliente, el balanceador de cargas genera un encabezado de protocolo PROXY con el formato siguiente:
PROXY UNKNOWN\r\n
Actualiza el encabezado del protocolo PROXY para el proxy de destino
En el ejemplo de configuración del balanceador de cargas de esta página, se muestra cómo habilitar el encabezado del protocolo PROXY mientras se crea el balanceador de cargas de red del proxy externo. Sigue estos pasos a fin de cambiar el encabezado del protocolo PROXY para un proxy TCP de destino existente.
Console
En la consola de Google Cloud, ve a la página Balanceo de cargas.
- Haz clic en Editar para editar tu balanceador de cargas.
- Haz clic en Configuración de frontend.
- Cambia el valor del campo del Protocolo Proxy a Activado.
- Haz clic en Actualizar para guardar los cambios.
gcloud
En el siguiente comando, edita el campo --proxy-header
y configúralo como NONE
o PROXY_V1
según tu requisito.
gcloud compute target-ssl-proxies update TARGET_PROXY_NAME \ --proxy-header=[NONE | PROXY_V1]
Configura la afinidad de sesión
En estos procedimientos se muestra cómo actualizar un servicio de backend para el balanceador de cargas del proxy SSL de ejemplo a fin de que el servicio de backend use la afinidad de IP de cliente.
Cuando la afinidad de IP de cliente está habilitada, el balanceador de cargas dirige las solicitudes de un cliente en particular a la misma VM de backend según el hash que se generó en la dirección IP del cliente y la dirección IP del balanceador de cargas (la dirección IP externa de una regla de reenvío externa).
Console
Para habilitar la afinidad de sesión de IP de cliente, sigue estos pasos:
En la consola de Google Cloud, ve a la página Balanceo de cargas.
Haz clic en Backends.
Haz clic en my-ssl-lb (nombre del servicio de backend que creaste para este ejemplo) y, luego, en Editar.
En la página Detalles del servicio de backend, haz clic en Configuración avanzada.
En Afinidad de sesión, selecciona IP de cliente en el menú.
Haz clic en Actualizar.
gcloud
Usa el siguiente comando de my-ssl-lb
para actualizar el servicio de backend y especifica la afinidad de sesión de IP de cliente:
gcloud compute backend-services update my-ssl-lb \ --global \ --session-affinity=CLIENT_IP
API
Para establecer la afinidad de sesión de IP de cliente, realiza una solicitud PATCH
al método backendServices/patch
.
PATCH https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/us-west1/backendServices/my-ssl-lb
{
"sessionAffinity": "CLIENT_IP"
}
Habilita el vaciado de conexiones
Puedes habilitar el vaciado de conexiones en servicios de backend a fin de garantizar una interrupción mínima para tus usuarios cuando se finaliza una instancia que entrega tráfico, se quita de forma manual o la quita un escalador automático. Para obtener más información sobre el vaciado de conexiones, consulta la documentación Habilita el vaciado de conexiones.
¿Qué sigue?
- Convierte el balanceador de cargas de red del proxy a IPv6
- Registro y supervisión del balanceador de cargas de red del proxy
- Políticas de SSL para los protocolos SSL y TLS
- Usa políticas de SSL para los protocolos SSL y TLS
- Cómo convertir a backends de pila doble
- Limpia una configuración de balanceo de cargas