Envoy Proxy es un edge y service proxy diseñado para aplicaciones orientadas a servicios, ofreciendo avanzadas funciones de balanceo de carga, manejo de fallas, y más. En esta guía, aprenderás a instalar y configurar Envoy Proxy en un servidor Debian 12, facilitando una comprensión técnica clara y accesible para aquellos que recién comienzan con las configuraciones de proxy en arquitecturas de microservicios.
Requisitos Previos
Antes de comenzar la instalación de Envoy en Debian 12, asegúrate de tener:
- Un servidor con Debian 12.
- Acceso al servidor con privilegios de superusuario (sudo).
Paso 1: Preparar el Sistema
- Actualizar el sistema:
Comienza actualizando tu sistema para asegurar que todos los paquetes estén al día, lo cual es esencial para la estabilidad y seguridad.
sudo apt update && sudo apt upgrade -y
Paso 2: Instalar las Dependencias Necesarias
Envoy Proxy requiere algunas herramientas y bibliotecas específicas para su instalación y ejecución.
- Instalar las herramientas necesarias:
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
Paso 3: Instalar Envoy Proxy
- Agregar el repositorio oficial de Envoy:
Envoy Proxy proporciona un repositorio de paquetes que facilita la instalación y actualización.
curl -sL 'https://getenvoy.io/gpg' | sudo apt-key add -
echo "deb [arch=amd64] https://dl.bintray.com/tetrate/getenvoy-deb $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/getenvoy.list
- Instalar Envoy:
Con el repositorio añadido, actualiza el índice de paquetes e instala Envoy Proxy.
sudo apt update
sudo apt install getenvoy-envoy -y
Paso 4: Configurar Envoy Proxy
- Crear un archivo de configuración básico:
Envoy utiliza archivos YAML para su configuración. Aquí tienes un ejemplo simple para comenzar.
sudo mkdir -p /etc/envoy
sudo nano /etc/envoy/envoy.yaml
Añade lo siguiente al archivo:
static_resources:
listeners:
- address:
socket_address: { address: 0.0.0.0, port_value: 10000 }
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: ingress_http
codec_type: AUTO
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains: ["*"]
routes:
- match: { prefix: "/" }
route: { host_rewrite_literal: www.example.com, cluster: service_google }
http_filters:
- name: envoy.filters.http.router
clusters:
- name: service_google
connect_timeout: 0.25s
type: LOGICAL_DNS
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: service_google
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address: { address: www.google.com, port_value: 443 }
transport_socket:
name: envoy.transport_sockets.tls
Este es un ejemplo básico que configura Envoy para escuchar en el puerto 10000 y redirigir todas las solicitudes a Google.
- Iniciar Envoy Proxy:
sudo envoy -c /etc/envoy/envoy.yaml
Para aquellos que buscan una solución robusta y escalable para desplegar proxies y balanceadores de carga como Envoy, los servicios de Cloud VPS de Shape.host son ideales. Shape.host ofrece VPS en la nube que proporcionan la potencia y flexibilidad necesarias para manejar aplicaciones y configuraciones de red intensivas, permitiendo a los usuarios concentrarse en la eficiencia de sus operaciones de red sin preocuparse por el mantenimiento de la infraestructura física. Shape.host garantiza un entorno seguro y de alto rendimiento, perfecto para desplegar y gestionar Envoy Proxy en un entorno de nube robusto y escalable.