SYSTEMD-SOCKET-PROXYD(8) | systemd-socket-proxyd | SYSTEMD-SOCKET-PROXYD(8) |
BEZEICHNUNG
systemd-socket-proxyd - Bidirektionaler Proxy zwischen lokalen Sockets und anderen (möglicherweise nichtlokalen) Sockets
ÜBERSICHT
systemd-socket-proxyd [OPTIONEN…] RECHNER:PORT
systemd-socket-proxyd [OPTIONEN…] UNIX-DOMAIN-SOCKET-PFAD
BESCHREIBUNG
systemd-socket-proxyd ist ein generischer, Socket-aktivierter weiterleitender Netzwerk-Socket-Proxy-Daemon für IPv4, IPv6 und UNIX-Datenstrom-Sockets. Er kann zum bidirektionalen Weiterleiten von Verkehr von einem lokalen Socket, bei dem auf Anfragen gewartet wird, an einen lokalen oder fernen Ziel-Socket verwandt werden.
Die Bereitstellung von Socket-Aktivierungsunterstützung für Dienste, die nativ keine Socket-Aktivierung unterstützen, ist ein Anwendungsfall dieses Werkzeugs. Im Auftrag des zu aktivierenden Dienstes erbt der Proxy das Socket von Systemd, akzeptiert jede Client-Verbindung, öffnet die Verbindung zu einem konfigurierten Server für jeden Client und leitet dann Daten bidirektional zwischen den beiden weiter.
Das Verhalten dieses Hilfswerkzeugs ist ähnlich socat(1). Der Hauptunterschied zu systemd-socket-proxyd besteht darin, dass die Socket-Aktivierung mit »Accept=no« unterstützt wird und dass ein ereignisgesteuertes Design verwandt wird, das besser mit der Anzahl der Verbindungen skaliert.
Beachten Sie, dass systemd-socket-proxyd keine Socket-Seitenkanalinformationen weiterleiten wird, d.h. es wird nicht SCM_RIGHTS, SCM_CREDENTIALS, SCM_SECURITY, SO_PEERCRED, SO_PEERPIDFD, SO_PEERSEC, SO_PEERGROUPS und ähnliche weiterleiten.
OPTIONEN
Die folgenden Optionen werden verstanden:
-h, --help
--version
--connections-max=, -c
Hinzugefügt in Version 233.
--exit-idle-time=
Hinzugefügt in Version 246.
EXIT-STATUS
Bei Erfolg wird 0 zurückgegeben, anderenfalls ein Fehlercode ungleich Null.
BEISPIELE
Einfaches Beispiel
Zwei Dienste mit einer Abhängigkeit und keiner Namensraumisolation verwenden.
Beispiel 1. proxy-to-nginx.socket
[Socket] ListenStream=80 [Install] WantedBy=sockets.target
Beispiel 2. proxy-to-nginx.service
[Unit] Requires=nginx.service After=nginx.service Requires=proxy-to-nginx.socket After=proxy-to-nginx.socket [Service] Type=notify ExecStart=/usr/lib/systemd/systemd-socket-proxyd /run/nginx/socket PrivateTmp=yes PrivateNetwork=yes
Beispiel 3. nginx.conf
[…] server { listen unix:/run/nginx/socket; […]
Beispiel 4. Aktivierung des Proxys
# systemctl enable --now proxy-to-nginx.socket $ curl http://localhost:80/
Falls nginx.service StopWhenUnneeded= gesetzt hat, dann erlaubt die Übergabe von --exit-idle-time= an systemd-socket-proxyd beiden Diensten, während Leerlaufperioden anzuhalten.
Namensraum-Beispiel
Ähnlich wie oben, führt aber den Socket-Proxy und den Hauptdienst im gleichen privaten Namensraum aus, wobei angenommen wird, dass nginx.service auch PrivateTmp= und PrivateNetwork= gesetzt hat.
Beispiel 5. proxy-to-nginx.socket
[Socket] ListenStream=80 [Install] WantedBy=sockets.target
Beispiel 6. proxy-to-nginx.service
[Unit] Requires=nginx.service After=nginx.service Requires=proxy-to-nginx.socket After=proxy-to-nginx.socket JoinsNamespaceOf=nginx.service [Service] Type=notify ExecStart=/usr/lib/systemd/systemd-socket-proxyd 127.0.0.1:8080 PrivateTmp=yes PrivateNetwork=yes
Beispiel 7. nginx.conf
[…] server { listen 8080; […]
Beispiel 8. Aktivierung des Proxys
# systemctl enable --now proxy-to-nginx.socket $ curl http://localhost:80/
SIEHE AUCH
systemd(1), systemd.socket(5), systemd.service(5), systemctl(1), socat(1), nginx(1), curl(1)
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.
systemd 255 |