Envoy Proxy unter Debian 11 installieren
Envoy proxy ist ein freier und quelloffener Service-Proxy, der für Cloud-native Anwendungen entwickelt wurde. Er ist vergleichbar mit Nginx und haproxy, die als Reverse Proxy verwendet werden können, aber Envoy proxy ist für moderne Dienste und Infrastrukturen konzipiert.
Envoy ist ein leistungsstarker Service-Proxy, der mit jeder Anwendungssprache funktioniert. Er verwendet YAML-Konfigurationsdateien für die statische Konfiguration und nutzt außerdem eine Reihe von gRPC-basierten APIs.
Der Envoy-Proxy wurde von der Cloud Native Computing Foundation (CNCF) entwickelt. Er wird in den meisten modernen Infrastrukturen und Containertechnologien verwendet.
In diesem Lernprogramm zeigen wir dir, wie du den Envoy Proxy auf dem Debian 11 Server installierst und konfigurierst.
Voraussetzungen
Für die Installation von Envoy benötigen wir Folgendes:
- Einen Linux-Server Debian 11 Bullseye
- Ein Nicht-Root-Benutzer mit sudo-Rechten
Hinzufügen des Envoy-Repositorys
Envoy kann auf verschiedene Arten installiert werden, zum Beispiel mit den Binärpaketen aus dem Envoy-Repository oder mit Docker. In diesem Beispiel werden wir Envoy mit dem Binärpaket aus dem Envoy-Repository installieren.
Bevor du Envoy hinzufügst und installierst, musst du das folgende Paket installieren. Mit gnupg2 fügst du den GPG-Schlüssel zu deinem Debian-Server hinzu, und mit apt-transport-https kannst du Pakete über eine sichere https-Verbindung installieren.
sudo apt install gnupg2 apt-transport-https -y
Als Nächstes fügst du den Envoy GPG-Schlüssel hinzu und überprüfst ihn mit dem folgenden Befehl.
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
Wenn der Schlüssel gültig ist, siehst du eine Meldung wie OK.
Füge nun das Envoy-Repository mit dem folgenden Befehl zu deinem System hinzu.
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
Zum Schluss aktualisierst du dein Debian-Repository.
sudo apt update
Auf dem folgenden Screenshot siehst du, dass das Envoy-Repository dem Debian-System hinzugefügt wurde.
Installation von Envoy Proxy
Nachdem du nun den Envoy GPG-Schlüssel und das Repository hinzugefügt hast, musst du nun das Envoy-Paket auf deinem System installieren.
Führe den folgenden apt-Befehl aus, um das Envoy-Paket auf deinem Debian 11-System zu installieren.
sudo apt install getenvoy-envoy
Unten siehst du, wie die Installation von Envoy abläuft.
Nachdem die Installation von Envoy abgeschlossen ist, überprüfe die Envoy-Version mit dem folgenden Befehl.
envoy --version
Unten siehst du, dass Envoy v1.18 auf Debian 11 installiert ist. Dies ist die neueste Version des Envoy-Proxys, die im Envoy-Repository zur Verfügung steht. Wenn du die neueste Version haben möchtest, kannst du eine vorgefertigte Binärdatei von der Envoy-Website verwenden.
Außerdem kannst du mit dem folgenden Befehl alle verfügbaren Optionen für den Envoy-Befehl überprüfen.
envoy --help
Du wirst eine Menge Optionen sehen, die du für die Einrichtung von Envoy verwenden kannst.
Envoy Proxy konfigurieren
Nachdem du Envoy installiert hast, erfährst du nun, wie du Envoy einrichtest.
Erstelle zunächst ein neues Verzeichnis /etc/envoy/ mit dem folgenden Befehl.
mkdir -p /etc/envoy/
Erstelle nun eine neue Datei /etc/envoy/demo.yaml mit dem Editor nano.
sudo nano /etc/envoy/demo.yaml
Füge die folgende Konfiguration in die Datei ein. In diesem Beispiel verwendest du die static_resources-Konfiguration für Envoy, die die Listener, Cluster und static_resources enthalten muss.
Die Listener legen fest, welche IP-Adresse und welcher Port für Envoy verwendet werden sollen. In diesem Beispiel wird Envoy auf der öffentlichen IP-Adresse 0.0.0.0 mit Port 80 laufen.
Der Cluster service_envoyproxy_io wird hier als Endpunkt des Dienstes verwendet, der der Domainname www.envoyproxy.io ist.
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
Speichere und schließe die Datei, wenn du fertig bist.
Als Nächstes führst du den folgenden envoy-Befehl aus, um die Konfigurationsdatei demo.yaml zu überprüfen.
envoy --mode validate -c /etc/envoy/demo.yaml
Wenn deine YAML-Konfiguration korrekt ist, siehst du eine Ausgabe wie „configuration /etc/envoy/demo.yaml OK“.
Starte nun Envoy mit der Konfigurationsdatei demo.yml mit dem folgenden Befehl.
envoy -c /etc/envoy/demo.yaml
Du wirst die unten stehende Log-Ausgabe sehen. Achte auch darauf, dass du keine Fehlermeldungen erhältst.
Wechsle nun zu deinem lokalen Rechner und bearbeite die Konfigurationsdatei /etc/hosts mit dem Editor nano.
sudo nano /etc/hosts
Füge den Domainnamen www.envoyproxy.io mit der IP-Adresse deines Servers wie unten angegeben ein.
192.168.5.10 www.envoyproxy.io
Speichere und schließe die Datei, wenn du fertig bist.
Öffne deinen Webbrowser und rufe den Domainnamen www.envoyproxy.io auf. Du solltest nun die Homepage des Domainnamens www.envoyproxy.io sehen.
Fazit
Herzlichen Glückwunsch! Du hast Envoy nun erfolgreich auf dem Debian 11 Server installiert. Außerdem hast du gelernt, wie du Envoy mithilfe der YAML-Konfiguration für das Proxying der Website www.envoyproxy.io einrichtest.