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

  1. 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
  1. 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

  1. 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.

  1. 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.