Ricerca nel sito web

Come installare e configurare Envoy Proxy su Debian 11


Su questa pagina

  1. Prerequisiti
  2. Aggiunta del repository di Envoy
  3. Installazione di Envoy Proxy
  4. Configurazione di Envoy Proxy
  5. Conclusione

Il proxy Envoy è un proxy di servizio gratuito e open source progettato per applicazioni native del cloud. È paragonabile a Nginx e haproxy che possono essere utilizzati come proxy inverso, ma il proxy Envoy è progettato per servizi e infrastrutture moderni.

Envoy è un proxy di servizio ad alte prestazioni che funziona con qualsiasi linguaggio dell'applicazione. Utilizza i file di configurazione YAML per la configurazione statica e utilizza anche un set di API basate su gRPC.

Il proxy di Envoy si è laureato presso la Cloud Native Computing Foundation (CNCF). È utilizzato nella maggior parte delle infrastrutture moderne e nella tecnologia dei container.

In questo tutorial, ti mostreremo come installare e configurare il proxy Envoy sul server Debian 11.

Prerequisiti

Per l'installazione di Envoy, utilizzeremo quanto segue:

  • Un server Linux Debian 11 Bullseye
  • Un utente non root con privilegi sudo

Aggiunta del repository di Envoy

Envoy può essere installato in molti modi, anche con i pacchetti binari forniti dal repository Envoy o utilizzando Docker. In questo esempio, installeremo Envoy utilizzando il pacchetto binario dal repository Envoy.

Prima di aggiungere e installare Envoy, è necessario installare il seguente pacchetto. gnupg2 sarà usato per aggiungere la chiave GPG al tuo server Debian, e apt-transport-https ti permetterà di installare i pacchetti dalla connessione sicura https.

sudo apt install gnupg2 apt-transport-https -y

Successivamente, aggiungi e verifica la chiave GPG di Envoy utilizzando il seguente comando.

curl -sL 'https://deb.dl.getenvoy.io/public/gpg.8115BA8E629CC074.key' | sudo gpg --dearmor -o /usr/share/keyrings/getenvoy-keyring.gpg
echo a077cb587a1b622e03aa4bf2f3689de14658a9497a9af2c427bba5f4cc3c4723 /usr/share/keyrings/getenvoy-keyring.gpg | sha256sum --check

Se la chiave è valida, vedrai un messaggio di output come OK.

Ora aggiungi il repository Envoy al tuo sistema usando il comando seguente.

echo "deb [arch=amd64 \
signed-by=/usr/share/keyrings/getenvoy-keyring.gpg] \
 https://deb.dl.getenvoy.io/public/deb/debian \
$(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/getenvoy.list

Infine, aggiorna e aggiorna il tuo repository Debian.

sudo apt update

Nello screenshot qui sotto vedrai che il repository Envoy è stato aggiunto al sistema Debian.

Installazione di Envoy Proxy

Ora hai aggiunto la chiave e il repository GPG di Envoy, ora installerai il pacchetto Envoy sul tuo sistema.

Esegui il comando apt di seguito per installare il pacchetto Envoy sul tuo sistema Debian 11.

sudo apt install getenvoy-envoy

Di seguito puoi vedere l'installazione di Envoy nel processo.

Al termine dell'installazione di Envoy, verificare la versione di Envoy utilizzando il seguente comando.

envoy --version

Sotto puoi vedere Envoy v1.18 installato su Debian 11. Questa è l'ultima versione del proxy Envoy fornito dal repository Envoy. Se desideri ottenere l'ultima versione, puoi utilizzare un file binario predefinito dal sito Web di Envoy.

Inoltre, puoi anche controllare tutte le opzioni disponibili sul comando envoy usando il seguente comando.

envoy --help

Vedrai molte opzioni che puoi utilizzare per configurare Envoy.

Configurazione di Envoy Proxy

Dopo aver installato Envoy, ora imparerai come configurare Envoy.

Innanzitutto, crea una nuova directory /etc/envoy/ utilizzando il seguente comando.

mkdir -p /etc/envoy/

Ora crea un nuovo file /etc/envoy/demo.yaml utilizzando l'editor nano.

sudo nano /etc/envoy/demo.yaml

Aggiungere la seguente configurazione al file. In questo esempio, utilizzerai la configurazione static_resources per Envoy, che deve includere listener, cluster e static_resources.

I listener determinano quale indirizzo IP e porta verranno utilizzati per Envoy. In questo esempio, Envoy verrà eseguito sull'indirizzo IP pubblico 0.0.0.0 con la porta 80.

Il cluster service_envoyproxy_io qui verrà utilizzato come endpoint del servizio, ovvero il nome di dominio www.envoyproxy.io.

static_resources:

  listeners:
  - name: listener_0
    address:
      socket_address:
        address: 0.0.0.0
        port_value: 80
    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
          access_log:
          - name: envoy.access_loggers.stdout
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
          http_filters:
          - name: envoy.filters.http.router
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
          route_config:
            name: local_route
            virtual_hosts:
            - name: local_service
              domains: ["*"]
              routes:
              - match:
                  prefix: "/"
                route:
                  host_rewrite_literal: www.envoyproxy.io
                  cluster: service_envoyproxy_io

  clusters:
  - name: service_envoyproxy_io
    type: LOGICAL_DNS
    connect_timeout: 5s
    # Comment out the following line to test on v6 networks
    dns_lookup_family: V4_ONLY
    load_assignment:
      cluster_name: service_envoyproxy_io
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: www.envoyproxy.io
                port_value: 443
    transport_socket:
      name: envoy.transport_sockets.tls
      typed_config:
        "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext
        sni: www.envoyproxy.io

Salva e chiudi il file quando hai finito.

Successivamente, esegui il comando envoy di seguito per verificare il file di configurazione demo.yaml.

envoy --mode validate -c /etc/envoy/demo.yaml

Se la tua configurazione YAML è corretta, vedrai un output come \configuration /etc/envoy/demo.yaml OK\.

Ora esegui Envoy con il file di configurazione demo.yml usando il seguente comando.

envoy -c /etc/envoy/demo.yaml

Vedrai l'output del registro di seguito. Inoltre, assicurati di non ricevere messaggi di errore.

Ora spostati sul tuo computer locale e modifica il file di configurazione /etc/hosts usando nano editor.

sudo nano /etc/hosts

Aggiungi il nome di dominio www.envoyproxy.io con l'indirizzo IP del tuo server come di seguito.

192.168.5.10 www.envoyproxy.io

Salva e chiudi il file quando hai finito.

Infine, apri il tuo browser web e visita il nome di dominio www.envoyproxy.io e dovresti ottenere la home page del nome di dominio www.envoyproxy.io.

Conclusione

Congratulazioni! ora hai installato con successo Envoy sul server Debian 11. Hai anche imparato come configurare Envoy utilizzando la configurazione YAML per l'inoltro del sito Web www.envoyproxy.io.