it-swarm.com.de

Kann cURL Anfragen an Sockets senden?

Ich habe einen HTTP-Server mit /var/run/my-server.sock und möchte ihn testen, indem ich eine einfache Anfrage mit cURL sende. Kann das mit cURL gemacht werden? Kann das überhaupt gemacht werden oder muss ein Reverse-Proxy vorhanden sein?

Ich stelle mir so etwas vor:

curl socket:/var/run/my-server.sock:/test/path
66
Hubro

Die Funktion wurde in curl 7.40 hinzugefügt.

curl --unix-socket /var/run/docker.sock http:/images/json

Ein anderes Beispiel:

curl --no-buffer -XGET --unix-socket /docker.sock http:/events

Womit die GET explizit angegeben wird (anstatt angenommen zu werden). Und puffert nicht (für tail -f Echtzeit-Update).

(Die erste Ubuntu-Veröffentlichung, die mit Curl 7.40 oder neuer ausgeliefert wurde, war 15.10.).

cURL 7.50 und höher erfordert die Angabe einer gültigen URL , einschließlich eines Hostnamens. Um die obigen Beispiele mit cURL 7.50 auszuführen, muss ein "Dummy" -Hostname hinzugefügt werden, zum Beispiel:

curl --unix-socket /var/run/docker.sock http://localhost/images/json

und

curl --no-buffer -XGET --unix-socket /docker.sock http://localhost/events
93
Dreamcat4

Ich bin mir nicht sicher, aber wie folgt:

es scheint nicht der Fall zu sein.

Dazu:

es scheint so, als ob socat oder nc es schaffen könnten.

# Socat version
echo -e "GET /images/json HTTP/1.1\r\n" | socat unix-connect:/var/run/docker.sock STDIO

# nc version (netcat-freebsd)
echo -e "GET /images/json HTTP/1.0\r\n" | nc -U /var/run/docker.sock

Hab ich auch nicht selbst ausprobiert.

8
steady rain