2016-02-26 27 views
8

Buduję konfigurację, w której host uruchamia kilka kontenerów Docker do testowania różnych gałęzi kodu i chcę uzyskać dostęp do działającego serwera WWW w kontenerach.Apache: proxy do gniazda unix o nazwie pod adresem URL

Wszystkie pojemniki działają pod numerem host. Każdy kontener obsługuje aplikację internetową za pośrednictwem gniazda unix na hoście, np. /var/sockets/<socket_name>.

Co chcę jest dla apache na host do pełnomocnika do pojemników na podstawie adresu URL, tak, że kiedy GET https://<host>.com/<socket_name>/my_url, Apache pełnomocników do <socket_name> zgłoszeniu: GET https://<host>.com/my_url. Oznacza to, że rozpoznaje nazwę gniazda w adresie URL, przepisuje adres URL i wysyła go do tego gniazda.

Czy to możliwe? Ja nadal czytania dokumentowania zgrzewów, ale nie wydaje się znaleźć żadnych wskazówek

+0

Apache obsługuje proxy dla gniazd unix od wersji 2.4.x. Jak dokładnie, cóż ... znalazłem twoje pytanie szukając odpowiedzi w google. :-) – peterh

Odpowiedz

3

na podstawie różnych Dokumentów w internecie, chodzi o to, by objąć zarówno mod_proxy i mod_rewrite w dwóch etapach, a mianowicie URL będą przetwarzane wyodrębnić nazwę gniazda i do przepisania bez tej części, a proxy zostanie wykonane na podstawie nowego (skróconego) adresu URL i nazwy gniazda.

Oto jak to mógłby wyglądać następująco:

RewriteEngine On 
RewriteRule  /(.*)/(.*) http://%{HTTP_HOST}/$2 [P] 
ProxyPass  /   unix:/var/sockets/$1.sock|http://%{HTTP_HOST}/ 
ProxyPassReverse/   unix:/var/sockets/$1.sock|http://%{HTTP_HOST}/ 

ja uziemić moją propozycję na (.*) wyrażeń, które będą wyodrębnić dwa parametry interesów. Następnie przepisujemy adres URL i za pomocą flagi P oznaczamy, że wynik ma być przekazany do proxy. Później określamy dwa identyczne numery: ProxyPass i ProxyPassReverse i określamy ścieżkę do gniazd Uniksa, separator rur | i adres bazowy hosta.

Mam nadzieję, że to zadziała lub przynajmniej da jakiś szkic tego, czego powinniśmy szukać.

+0

Zobaczę, czy znajdę czas, żeby to wypróbować. W międzyczasie stworzyłem małą aplikację webową Pythona, która po prostu przekierowuje adresy URL. – Eldamir

+0

OK, aplikacja webowa Python również może być odpowiednim rozwiązaniem. –