2012-06-12 14 views
5

9090 numaralı bağlantı noktasında bir dinleyici ayarlayabilir ve 9090'dan gelen her istekte Host: test.host gibi bir başlık ekleyebilir ve 8080'e gönderebilir miyim?Werkzeug veya diğer python istekleri çerçevesini kullanarak çok basit http proxy nasıl yapılır?

Teşekkür

DÜZENLEME: hostname uygulayarak şimdilik bir ters-proxy ile gitti. Portunu için geliyor herhangi isteği

+0

Apache'nin mod_proxy'si gibi varolan bir proxy'yi kullanmanızı engelleyen nedir? Web sunucunuzda kullanmanız gereken özellikler var mı? –

+0

Jd mod_proxy'yi sadece varsayılan apache portunu değil, çeşitli portları nasıl dinleyebilirim? Apache'nin zaten birçok dinlemeyi sevmediğini okudum. – rapadura

cevap

4

Twisted bir ters vekil gerçeklenimine olduğunu yapabildin ihtiyaçlarınızı karşılamak için değiştirin. here örneklerine bakabilirsiniz. twisted.web.proxy kaynak koduna bakarsanız, 'Ana Bilgisayar:' başlığının ReverseProxyRequest.process olarak ayarlandığını görebilirsiniz, böylece alt sınıfı ve kendi başlığınızı ayarlayabilirsiniz.

1

Yalnızca proxy uygulamanızın yalnızca web uygulamanızın bildiği parametrelere göre uyarlanması gerekmedikçe (örneğin, proxy uygulamasının web sunucunuzun özel kimlik doğrulama sistemi ile doğrulanması gerekir), web sunucunuzun proxy özelliklerini kullanmanız gerekir. Apache ile

Örnek: Bir Matara veya Werkzeug uygulamasında vekil şeyler varsa

Listen 0.0.0.0:9090 
ProxyRequests off 
<VirtualHost myhost:9090> 
    ProxyPass/http://localhost:8080/ 
    ProxyPassReverse/http://localhost:8080/ 
    ProxyPassReverseCookieDomain localhost myhost 
</VirtualHost> 

, ham veya değiştirilmiş ya gelen istek verilerine dayanarak isteklerini oluşturma ve tepkisini dönen, httplib kullanabilirsiniz (ör. yeniden yazım için). Yapılabilir, iyi bir alternatifin olmadığı yerlerde kullanımda böyle bir vekil var. Bunu yaparsanız, HTML bağlantılarını yeniden yazmak için normal ifadeleri kullanmamanızı öneririm. PyQuery'yi kullandım, doğru olması çok daha kolay.

+0

Ana bilgisayar adı etrafında bir sürü iş mantığına sahip gerçekten kötü bir eski uygulama için başlık Ana Bilgisayarını belirli bir değere eklemem veya ayarlamam gerekiyor. Ancak, uygulamanın mobil cihazlarda nasıl göründüğünü kontrol etmek ve geliştirme/test işlemini daha kolay hale getirmek (farklı bağlantı noktalarında birkaç örneği çalıştırmak) için bu proxy-ve-add-header'ı önceden kurmak istiyorum. – rapadura

+0

Şu anda sanal bir ana bilgisayar kurulumuna sahibim ve sonra da/etc/hosts ile uğraşmam gerekiyor, sadece çirkin. Anlatabileceğim küçük bir python betiği hazırladım, 9090'da ev sahibi ekle: herhangi bir istek için header blah ve onları localhost'a ilet: 7777 iyi olurdu, o zaman ben özel telefona gidebilirdim: 9090'dan telefon ve uygulama hala blah hizmet etmek. – rapadura

+1

Anladım. Sonra küçük web uygulaması muhtemelen gitmek için yoldur. Sanırım @ mensi'nin cevabı en iyisi ama Werkzeug'ü Twisted'i tercih ediyorsun, çok zor olmamalı. –

İlgili konular