W moim domu działa wiele serwerów internetowych, z których każdy jest podłączony do routera.
Serwer A Serwer B Serwer C
Obecnie mogę używać tylko jednego serwera, ponieważ mój adres IP (xx.xxx.xx.xx) 80 wskazuje serwer A. Jednak niektóre domeny wskazują na serwer A, niektóre na B itp.
Jak wskazać każdy serwer za pomocą jednego adresu IP? Na przykład wszystkie moje rekordy A (hosta) wskazują tylko mój adres IP.
Przepraszam, jeśli brzmi myląco. Daj mi znać, jeśli nie będę jasne.
Na każdym serwerze działa Ubuntu Server 12.04.02 i używa Apache (jeśli to pomaga). Mój router to także Netgear, a moim dostawcą usług internetowych jest Time Warner Cable.
webserver
apache-http-server
home-server
ubuntu-server
Stephen Cioffi
źródło
źródło
Odpowiedzi:
Strony internetowe będą rozpoznawane po
Host:
nagłówku wysłanym z przeglądarki. Ponieważ jednak router nie obsługuje demontażu HTTP używanego przez wirtualny hosting, musisz wybrać jeden serwer jako „punkt końcowy” (i podać routerowi ten adres jako Virtual Server / DMZ).Następnie albo skonfigurujesz ten komputer jako serwer WWW dla jego domen i proxy dla innych (np. Używając odwrotnego proxy Apache ), albo (być może lepiej) zainstalujesz proxy na tym komputerze i użyjesz go do multipleksowania żądań do innych serwerów . Niektóre domeny mogą być nawet hostowane na tym samym komputerze.
nginx
nadaje się do tego rodzaju pracy, ale możesz także użyć innego oprogramowania (nppound
.).Myślę, że drugie rozwiązanie jest lepsze, ponieważ nie musisz w ogóle majstrować przy konfiguracjach serwerów WWW: jeden serwer proxy obsługuje proxy, a kilka serwerów obsługuje serwery WWW. Jeśli potrzebujesz dodać serwery lub przenieść wirtualne hosty, łatwiej jest utrzymać tę architekturę.
Dodatkowe opóźnienie wynikające z dwukrotnego odkodowania żądania (raz przez proxy, raz przez jego zamierzonego adresata) jest znikome i więcej niż kompensowane przez przyspieszenie zapewniane przez samo proxy.
źródło