2016-02-26 18 views
8

Bir ana bilgisayar, farklı kod dallarını test etmek için bir grup Docker kapsayıcısı çalıştıran bir kurulum yapıyorum ve çalışan web sunucusuna kapsayıcılarda erişmek istiyorum.Apache: URL'de adlandırılan unix soketinin proxy'si

Tüm kapsayıcılar host üzerinde çalışır. Her bir konteyner, host üzerindeki bir unix soketinden, ör. /var/sockets/<socket_name>.

İstediğim, url dayalı kaplara proxy host üzerinde apache içindir ki zaman <socket_name> I GET https://<host>.com/<socket_name>/my_url, apache proxy isteği: GET https://<host>.com/my_url. Yani, URL'deki soket adını tanır, URL'yi yeniden yazar ve bu sokete gönderir.

Bu mümkün mü? Hala documentaion aracılığıyla okuyorum ama net çeşitli dokümanlar dayanarak herhangi bir ipucu

+0

Apache, 2.4.x'den beri unix soketlerine proxy özelliğini destekler. Tam olarak ne kadar iyi ... Google ile cevabınızı aradığınız soruyu buldum. :-) – peterh

cevap

3

bulmak için görünmüyor olabilir, fikri iki adımda hem mod_proxy ve mod_rewrite kapsayacak şekilde, yani, URL soket adını ayıklamak için işlem görecektir ve Bu bölüm olmadan yeniden yazılacak ve vekil yeni (kısaltılmış) URL ve soket ismine göre yapılacaktır. Ben ilgi iki parametre ayıklamak zorundadır (.*) ifadeleriyle ilgili önerimi zemin

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

: Burada

gibi görüneceğine nasıl. Ardından, URL'yi yeniden yazıyoruz ve P bayrağı ile sonucun proxy'ye aktarılacağını gösteriyoruz. Daha sonra iki özdeş ProxyPass ve ProxyPassReverse belirtip Unix soket yolunu, | ayırıcı ve ana makine ana adresi belirtin.

İnşallah bu işe yarayacak ya da en azından neye bakacağımıza dair bir taslak verebilir.

+0

Bunu denemek için zaman bulabilir miyim göreceğim. Bu arada, sadece url – Eldamir

+0

yönlendirir küçük bir python webapp oluşturduk, Python webapp da uygun bir çözüm olabilir. –