Apache: Proxy für UNIX-Socket mit dem Namen in URL

8

Ich baue ein Setup, bei dem ein Host eine Reihe von Docker-Containern zum Testen verschiedener Code-Zweige ausführt, und ich möchte auf den laufenden Webserver in den Containern zugreifen.

Alle Container werden auf host ausgeführt. Jeder Container bedient eine Webanwendung über einen Unix-Socket auf dem Host, z. /var/sockets/<socket_name> .

Was ich möchte, ist, dass Apache auf host den Containern basierend auf der URL Proxy-basiert ist, sodass Apache bei% GET https://<host>.com/<socket_name>/my_url auf <socket_name> die Anfrage: GET https://<host>.com/my_url propagiert. Das heißt, es erkennt den Socket-Namen in der URL, schreibt die URL neu und sendet sie an diesen Socket.

Ist das möglich? Ich lese immer noch durch die documentaion, kann aber keine Hinweise finden

    
Eldamir 26.02.2016, 12:44
quelle

1 Antwort

3

Basierend auf verschiedenen Dokumenten im Internet besteht die Idee darin, sowohl mod_proxy als auch mod_rewrite in zwei Schritten zu umfassen, nämlich URL zu verarbeiten, um Socket-Namen zu extrahieren und ohne diesen Teil neu geschrieben zu werden, und Proxy soll sein basierend auf der neuen (verkürzten) URL und dem Socket-Namen.

So kann aussehen

:

%Vor%

Ich habe meinen Vorschlag auf (.*) Ausdrücke geerdet, die die zwei Parameter von Interesse extrahieren sollen. Dann schreiben wir die URL um, und mit P flag bezeichnen wir, dass das Ergebnis an den Proxy übergeben wird. Später geben wir zwei identische ProxyPass und ProxyPassReverse an und geben den Unix-Socket-Pfad, den Pipe | -Separator und die Host-Basisadresse an.

Ich hoffe, das könnte funktionieren oder zumindest eine Skizze davon geben, wonach wir suchen sollten.

    
Ivan T. 23.09.2017 08:18
quelle

Tags und Links