2016-02-26 21 views
8

Sto costruendo una configurazione, in cui un host esegue un gruppo di contenitori Docker per testare diversi rami di codice e voglio accedere al server web in esecuzione nei contenitori.Apache: proxy per unix socket denominato nell'URL

Tutti i contenitori funzionano su host. Ogni contenitore serve un'applicazione web attraverso un socket unix sull'host, ad es. /var/sockets/<socket_name>.

Quello che voglio è per Apache su host per proxy per i contenitori in base alla URL, in modo che quando ho GET https://<host>.com/<socket_name>/my_url, proxy Apache per <socket_name> la richiesta: GET https://<host>.com/my_url. Cioè, riconosce il nome del socket nell'url, riscrive l'url e lo invia a quel socket.

È possibile? Sto ancora leggendo attraverso documentaion, ma non riesco a trovare alcun suggerimento

+0

Apache supporta il proxy per unire socket dal 2.4.x. Come esattamente, beh ... ho trovato la tua domanda cercando la risposta con google. :-) – peterh

risposta

3

in base a diversi documenti in rete, l'idea è di comprendere sia mod_proxy e mod_rewrite in due fasi, vale a dire, URL saranno trattati per estrarre il nome presa di corrente e da riscrivere senza quella parte, e il proxy deve essere fatto in base al nuovo URL (abbreviato) e al nome del socket.

Ecco come potrebbe simile:

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

fonda la mia proposta sulla (.*) espressioni che deve estrarre i due parametri di interesse. Quindi riscriviamo l'URL e, tramite il flag P, denotiamo che il risultato deve essere passato al proxy. Successivamente specifichiamo due identici ProxyPass e ProxyPassReverse e specifichiamo percorso socket Unix, pipe | separatore e indirizzo base host.

Spero che questo possa funzionare o almeno darvi un abbozzo di ciò che dovremmo cercare.

+0

Vedrò se riesco a trovare il tempo per provare questo. Nel frattempo, ho creato una piccola webapp Python che semplicemente reindirizza gli URL – Eldamir

+0

OK, anche la webapp Python potrebbe essere una soluzione adatta. –