Tek bir IP adresinin arkasında birden çok fiziksel Web sunucusunu nasıl barındırabilirim?


14

Evimde, her biri yönlendiricime bağlı olan birden fazla web sunucusu çalıştırıyorum.

Sunucu A Sunucu B Sunucu C

IP (xx.xxx.xx.xx) bağlantı noktası 80, sunucu A'yı işaret ettiğinden şu anda yalnızca bir sunucu kullanabiliyorum. Ancak bazı etki alanları A sunucusunu, bazıları B vb.

Bir IP adresimle, her bir sunucuyu nasıl işaret ederim? Örneğin, A (ana bilgisayarım) kayıtları yalnızca IP adresimi gösteriyor.

Kafa karıştırıcı geliyorsam özür dilerim. Eğer net olmadığımı bilmeme izin ver.

Her sunucu Ubuntu Server 12.04.02 çalıştırıyor ve Apache kullanıyor (eğer yardımcı oluyorsa). Yönlendiricim de bir Netgear ve İSS'm Time Warner Cable.



@kobaltz Tam olarak bunlar farklı sunucular olduğu için değil, sanal ana bilgisayarlar değil. Bunlar 3 fiziksel sunucu
Stephen Cioffi

Sorudaki cevabım, yönlendiriciden sonra ilk hit olacak olan ters bir proxy sunucusuna sahip olacağınız şeyle aynı. Oradan, verileri üç sunucudan birine gönderir. OpenWRT gibi bir şey kullanıyorsanız bunu yönlendiriciden de yapabilirsiniz.
kobaltz

Şu anda bu açıklamayı diğer soruya verdiğim cevapta kullanıyorum. Ağ geçidi için bir VM ve sonra 20 düğüm olan bir Sanal Makine sunucum var. Alt etki alanına ve etki alanı adına bağlı olarak, verileri 20 sunucudan birine gönderir.
kobaltz

Yanıtlar:


9

Web siteleri Host:tarayıcıdan gönderilen başlık aracılığıyla tanınır . Ancak yönlendiriciniz sanal barındırma tarafından kullanılan HTTP demangling yeteneğine sahip olmadığından, bir sunucuyu "bitiş noktası" olarak seçmeniz gerekir (ve yönlendiricinize bu adresi Sanal Sunucu / DMZ olarak bildirmeniz gerekir).

Daha sonra, bir makineyi etki alanları için web sunucusu ve diğerleri için proxy olarak yapılandırırsınız (örneğin Apache ters proxy kullanarak ) veya (belki daha iyi) bir makineye bir proxy yüklersiniz ve bunu diğer sunuculara çoğullamak için kullanırsınız . Bazı etki alanları aynı makinede barındırılabilir. nginxbu tür işler için uygundur, ancak başka yazılımlar da kullanabilirsiniz (örn. pound).

Bence ikinci çözüm daha iyi çünkü web sunucularının yapılandırmalarıyla uğraşmanıza gerek yok: bir proxy proxy yapıyor ve birkaç web sunucusu web sunumu yapıyor. Sunucu eklemeniz veya sanal ana bilgisayarları taşımanız gerekiyorsa, bu mimarinin bakımı daha kolaydır.

                                    +-- virtual hosts 1..9 -- server B
                                    |
router ----- machine A (nginx?) ----+-- virtual hosts 10..23- server C
                                    |
                                    +-- virtual hosts 24..99- server D

İsteğin iki kez deşifre edilmesi nedeniyle eklenen gecikme süresi (bir kez proxy tarafından, bir kez amaçlanan alıcı tarafından) göz ardı edilebilir ve proxy'nin kendisi tarafından sağlanan hızlanma ile dengelenmeyecektir.


Proxy olarak bir VM konuk oluşturursam, kullanılacak en iyi işletim sistemi nedir ve hangi donanım kaynaklarını ayırmalıyım? Bu proxy'yi DMZ'de ayarladığınızdan bahsediyorsunuz ... bu gerekli mi? Yönlendiricinin güvenlik duvarı ve NAT aracılığıyla hala bir miktar koruma katmanı olması için yalnızca açmak istediğim bağlantı noktalarını ileriye taşıyamaz mıyım?
Reece

Proxy kaynakları sorun değil, büyük ölçüde ağa bağlı olacaktır. İşletim sistemine gelince, en rahat olduğunuza bağlı olarak kesinlikle bir Unix, Linux veya BSD söyleyebilirim. Ayrıca çeşitli sanallaştırma çözümleri için hazır cihazlar da vardır (vmware, virtualbox, xen, vb.). Ve evet, sadece ihtiyacınız olan portları kesinlikle ileriye taşıyabilirsiniz.
LSerni
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.