SYSTEMD-SOCKET-PROXYD(8) systemd-socket-proxyd SYSTEMD-SOCKET-PROXYD(8)

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

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.

Die folgenden Optionen werden verstanden:

-h, --help

Zeigt einen kurzen Hilfetext an und beendet das Programm.

--version

Zeigt eine kurze Versionszeichenkette an und beendet das Programm.

--connections-max=, -c

Setzt die maximale Anzahl an gleichzeitigen Verbindungen, standardmäßig 256. Falls die Begrenzung der gleichzeitigen Verbindungen erreicht ist, werden weitere Verbindungen abgelehnt.

Hinzugefügt in Version 233.

--exit-idle-time=

Setzt die Zeit vor dem Beenden, wenn es keine Verbindungen gibt, standardmäßig infinity. Akzeptiert einen Wert ohne Einheiten in Sekunden oder eine Zeitdauer wie »5min 20s«.

Hinzugefügt in Version 246.

Bei Erfolg wird 0 zurückgegeben, anderenfalls ein Fehlercode ungleich Null.

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.

Ä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/

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