Hostujemy wiele aplikacji internetowych dla naszych klientów. Jak jest oczywiste, chcą używać własnych domen do odwoływania się do tych aplikacji, zwykle chcą, aby każdy użytkownik wpisał http://www.customer1.example
lub http://customer1.example
przeszedł do ich aplikacji internetowej.
Sytuacja, z którą mamy do czynienia, polega na tym, że potrzebujemy elastyczności, aby zmieniać adresy IP w najbliższej przyszłości. Nie chcemy też polegać na tym, że klient dokona zmiany rekordu A w swoich domenach. Pomyśleliśmy więc, że używanie CNAME
rekordów będzie działać, ale jak się okazało, CNAME
rekordy nie będą działać dla domeny głównej.
Gruntownie:
customer1.example IN CNAME customer1.mycompanydomain.example //this is invalid as the RFC
www.customer1.example IN CNAME customer1.mycompanydomain.example //this is valid and will work
Chcemy mieć możliwość zmiany adresu IP customer1.mycompanydomain.example
lub A
zapisu, a nasi klienci będą śledzić ten rekord, nad którym mamy kontrolę.
w naszym DNS będzie wyglądać tak:
customer1.mycompanydomain.example IN A 192.0.2.1
Jakieś pomysły?
źródło
Odpowiedzi:
Powodem, dla którego to pytanie wciąż się pojawia, jest to, że, jak wspomniałeś, gdzieś ktoś uznany za ważny napisał, że RFC stwierdza, że nazwy domen bez subdomeny przed nimi są nieważne. Jeśli jednak uważnie przeczytasz RFC, przekonasz się, że nie jest to dokładnie to, co mówi. W rzeczywistości RFC 1912 stwierdza:
Niektóre hosty DNS zapewniają sposób uzyskania funkcjonalności podobnej do CNAME na wierzchołku strefy (poziom domeny głównej, dla samej nazwy domeny) przy użyciu niestandardowego typu rekordu. Takie zapisy obejmują na przykład:
Dla każdego dostawcy konfiguracja jest podobna: wskaż wpis ALIAS lub ANAME dla domeny apex na example.domain.com, tak jak w przypadku rekordu CNAME. W zależności od dostawcy DNS wartość pusta lub @ Name identyfikuje wierzchołek strefy.
ALIAS lub ANAME lub @ example.domain.com.
Jeśli Twój dostawca DNS nie obsługuje takiego typu rekordu i nie możesz przełączyć się na taki, który obsługuje, będziesz musiał użyć przekierowania subdomeny, co nie jest takie trudne, w zależności od protokołu lub oprogramowania serwera, które musi to zrobić .
Zdecydowanie nie zgadzam się ze stwierdzeniem, że robią to tylko „amatorzy adminów” lub takie pomysły. To proste „Co musi robić nazwa i jej usługa?” deal, a następnie dostosować konfigurację DNS, aby spełniała te życzenia; Jeśli Twoje główne usługi to Internet i poczta e-mail, nie widzę żadnego PRAWIDŁOWEGO powodu, dla którego porzucenie CNAME na dobre byłoby problematyczne. W końcu kto wolałby @ subdomain.domain.org zamiast @ domain.org? Kto potrzebuje „www”, jeśli masz już ustawiony sam protokół? Nielogiczne jest zakładanie, że użycie nazwy domeny głównej byłoby nieprawidłowe.
źródło
CNAME jest technicznie sprzeczne z RFC, ale ma ograniczenia, co oznacza, że jest to praktyka niezalecana.
Zwykle Twój rekord główny będzie miał wiele wpisów. Powiedzmy 3 dla serwerów nazw, a następnie jeden dla adresu IP.
Według RFC:
Zgodnie z dokumentem IETF „Typowe błędy operacyjne i konfiguracyjne DNS”:
Bibliografia:
źródło
NS
iSOA
rekordy i stąd nie może miećCNAME
rekordów.Nie wiem, jak sobie z tym radzą ani jakie mogą mieć negatywne skutki uboczne, ale używam Hover.com do hostowania niektórych moich domen, a ostatnio ustawiłem tam wierzchołek mojej domeny jako CNAME. Ich narzędzie do edycji DNS w ogóle nie narzekało, a moja domena szczęśliwie rozwiązuje się za pośrednictwem przypisanego CNAME.
Oto, co Dig pokazuje mi dla tej domeny (rzeczywista domena zaciemniona jako mojadomena.com):
źródło
Moja firma robi to samo z wieloma klientami, gdzie hostujemy dla nich witrynę internetową, chociaż w naszym przypadku jest to xyz.company.com, a nie www.company.com. Sprawiamy, że ustawiają rekord A w witrynie xyz.company.com, aby wskazywał adres IP, który im przydzielamy.
Jeśli chodzi o to, jak poradzić sobie ze zmianą adresu IP, nie sądzę, aby było idealne rozwiązanie. Oto kilka pomysłów:
Użyj NAT lub systemu równoważenia obciążenia IP i nadaj swoim klientom należący do niego adres IP. Jeśli adres IP serwera internetowego wymaga zmiany, możesz zaktualizować NAT lub równoważnik obciążenia,
Zaoferuj również usługę hostingową DNS i poproś swoich klientów o hostowanie ich domeny razem z Tobą, abyś mógł zaktualizować rekordy A,
Poproś swoich klientów, aby ustawili swój rekord A na jednym głównym serwerze sieciowym i używali przekierowania HTTP dla żądań internetowych każdego klienta.
źródło
Sipwiz jest poprawny, jedynym sposobem, aby to zrobić poprawnie, jest podejście hybrydowe HTTP i DNS. Mój rejestrator jest odsprzedawcą dla Tucows i oferuje przekierowanie domeny głównej jako bezpłatną usługę o wartości dodanej.
Jeśli Twoja domena to blah.com, zapyta Cię, dokąd chcesz przekierować domenę i wpisz www.blah.com. Przypisują rekord A do swojego serwera Apache i automatycznie dodają blah.com jako DNS vhost. Vhost odpowiada błędem HTTP 302, przekierowując go do właściwego adresu URL. Jest prosty do skryptu / konfiguracji i może być obsługiwany przez low-end, który w przeciwnym razie zostałby złomowany.
Uruchom na przykład następującą komendę: curl -v eclecticengineers.com
źródło
Musisz wstawić kropkę na końcu domeny zewnętrznej, więc nie sądzisz, że masz na myśli klient1.mojadomena.com.domena lokalna;
Więc po prostu zmień:
Do
źródło
customer1.com
, działa to ... ale jest interpretowane jako określanie CNAMe dla subdomenycustomer1.com.customer1.com
. Jeśli dodam punkt do pierwszej pozycji, rekord zostanie zinterpretowany poprawnie, ale już nie działa. Nie widzę tutaj rozwiązania.Widzę, że readytocloud.com jest hostowane na Apache 2.2.
Jest znacznie prostszy i bardziej efektywny sposób przekierowania strony innej niż www na stronę www w Apache.
Dodaj następujące reguły przepisywania do konfiguracji Apache (wewnątrz hosta wirtualnego lub na zewnątrz. Nie ma to znaczenia):
Lub poniższe reguły przepisywania, jeśli chcesz mapować adresy URL z witryny innej niż www do witryny www 1 do 1:
Uwaga, moduł mod_rewrite musi zostać załadowany, aby to zadziałało. Na szczęście readytocloud.com działa na skrzynce CentOS, która domyślnie ładuje mod_rewrite.
Mamy serwer kliencki z Apache 2.2 z prawie 3000 domen i prawie 4000 przekierowań, jednak obciążenie serwera waha się w okolicach 0,10 - 0,20.
źródło
Dzięki zarówno sipwiz, jak i MrEvil. Opracowaliśmy skrypt PHP, który analizuje adres URL wprowadzony przez użytkownika i wkleja
www
go na początku. (np. jeśli klient wejdzie na kiragiannis.com , to nastąpi przekierowanie do www.kiragiannis.com ). Tak więc nasz klient kieruje swój katalog główny (np.customer1.com
AbyA
zarejestrować, gdzie znajduje się nasz przekierowanie), a następniewww
CNAME
do rzeczywistego,A
zarządzanego przez nas rekordu.Poniżej kod na wypadek, gdybyś był zainteresowany nami w przyszłości.
źródło
http://
do usunięcia ani/
($urlPagePath
zawsze będzie puste). Por . Httpd.apache.org/docs/2.4/expr.html . Ze względu na sposób, w jaki kod próbuje pozbyć się subdomeny, nie będzie on również działał w przypadku takich rzeczy, jakwww.example.co.uk
gdzieco.uk
należy traktować jako całość. Nie obsługuje też protokołu HTTPS. I wreszcie, używając PHP, po prostu wykonaj przekierowanie HTTP, w którym każdy serwer sieciowy może to zrobić w konfiguracji, jest zbyt skomplikowane. Krótko mówiąc, to z pewnością nie powinno być sprawdzoną odpowiedzią na to pytanie.