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.

OPTIONEN

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.

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 (https://www.gnu.org/licenses/gpl-3.0.html) 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 (debian-l10n-german@lists.debian.org).