Muszę przetestować subdomeny na moim hoście lokalnym. Jak mogę skutecznie uzyskać ten wynik dodania *.localhost.com
do mojego /etc/hosts/
pliku?
Jeśli nie jest to możliwe, jak obejść ten problem? Muszę przetestować subdomeny z symbolami zastępczymi na moim serwerze lokalnym. Jest to serwer Django, czy serwer Django może obsługiwać subdomeny? Czy jakieś inne oprogramowanie / routing może dać oczekiwany przeze mnie wynik końcowy?
Odpowiedzi:
Napisałem proxy dns w Pythonie. Czyta wpisy symboli wieloznacznych w / etc / hosts. Zobacz tutaj: https://github.com/hubdotcom/marlon-tools/blob/master/tools/dnsproxy/dnsproxy.py
źródło
pip install
zrobić :)Zainstaluj dnsmasq (i tak robię to na wszystkich komputerach z systemem Linux jako pamięć podręczna DNS). W
dnsmasq.conf
dodać linię:źródło
sudo port install dnsmasq
2. edycja/opt/local/etc/dnsmasq.conf
3.sudo port load dnsmasq
192.168.50.11
ale DNS nie rozwiązuje problemu. Wszelkie pomysły, czy ten przykład jest poprawny dla adresów IP „nie 127.0.0.1”?/etc/NetworkManager/dnsmasq.d/dnsmasq-localhost.conf
i umieść w nim linięaddress=/localhost.com/127.0.0.1
, a następnie uruchom ponownie.W
/etc/hosts
pliku nie można podać symboli wieloznacznych . Podaj jawnie wymagane nazwy hostów lub alternatywnie skonfiguruj lokalny serwer nazw z odpowiednimi regułami.źródło
Musisz skonfigurować serwer DNS i pozwolić każdemu klientowi używać go do rozwiązywania problemów. Sam serwer może być czymś tak „lekkim” jak dnsmasq lub tak ciężkim jak BIND .
źródło
--address=
sekcji strony podręcznika dnsmasq.conf nie obejmuje opisanego powyżej przypadku użycia?Prosty przepływ pracy (nie trzeba niczego instalować)
Osobiście lubię do tego tworzyć plik PAC i sprawić, że moja przeglądarka po prostu go używa.
Krok 1: Utwórz plik, np .:
*.proxy.pac*
gdzieś (używam mojego$home
folderu)Krok 2: wklej ten kod (przykład dotyczy portu 8000):
Krok 3 : Spraw, aby Twoja przeglądarka używała tego pliku PAC.
Youtube Video dla PAC i Firefox
Krok 4 : Teraz możesz przetestować aplikację, uzyskując dostęp do:
http://mysubdomain.localhost/
Krok 5: Ciesz się :)
źródło
wget
nie zostaną dotknięte przez to). Nie stanowi to problemu per se, ale może lepiej o tym wspomnieć.req.url
jest to teraz bezwzględny adres URL. Dzieje się tak, ponieważ założono, że chcesz napisać rzeczywisty serwer proxy, ale zaskakujące jest, jeśli przyszedłeś do tej techniki jako sposób na zaprzestanie dodawania wpisów / etc / hosts w celu debugowania. Dla tych, którzy mogliby pójść tą samą drogą, którą zrobiłem.Uporządkowałem mój stary projekt:
https://github.com/airtonix/avahi-aliases
wymagania:
Zalety w stosunku do używania dnsmasq lub proxy dns python:
źródło
To rozwiązanie oparte na DNS działało idealnie w moim przypadku, bez potrzeby instalowania czegokolwiek: https://gist.github.com/fedir/04e60d679d5657d1f9f9aa10b3168282 (Mac OSX 10.9)
źródło
Nie możesz użyć znaku wieloznacznego w
/etc/hosts
.Rzucić okiem tutaj dobrego instruktażu, w jaki sposób osiągnąć na OS X za pomocą BIND, wbudowany ale nieaktywny serwer DNS i Apache.
źródło
Jeśli chcesz używać
dnsmasq
zNetworkManager
Tobą, możesz (a nawet musisz?) Zacząćdnsmasq
odNetworkManager
dodaniado
/etc/NetworkManager/NetworkManager.conf
. Następnie konfiguracja dnsmasq idzie do/etc/NetworkManager/dnsmasq.conf
lub/etc/NetworkManager/dnsmasq.d/
resp.źródło
Krótka odpowiedź:
Twój plik / etc / hosts / nie pozwoli ci używać symboli wieloznacznych ani numerów portów. Musisz utworzyć jeden wpis dla każdej subdomeny
źródło
Krótka odpowiedź brzmi: nie. Dłuższą odpowiedzią jest to, że musisz jaśniej określić, co naprawdę chcesz osiągnąć, ponieważ może istnieje albo lepszy sposób, albo inny sposób na osiągnięcie tego.
W przypadku hostingu internetowego (nigdy nie widziałem, aby był używany inaczej) odbywa się w DNS w połączeniu z wirtualnym serwerem hostingowym. Aby uzyskać więcej informacji na temat rekordów DNS z symbolami wieloznacznymi (Wikipedia) oraz artykuł Hosting symboli wieloznacznych za pomocą Apache i Bind dla systemu Linux za pomocą bind i Apache.
W najgorszym przypadku można użyć lokalnego serwera DNS.
źródło
Typowym zadaniem tego tematu jest mapowanie katalogów do poddomen. Bardzo prostym sposobem na to jest automatyczne dodanie wpisów opartych na katalogu do pliku hosts:
źródło
Dziękuję tschundeee za to, co uważam za ostateczną odpowiedź na ten problem, chciałbym po prostu skomentować, ale tutaj jest całkowita konfiguracja dla tych, którzy próbują osiągnąć pierwotny cel (symbole wieloznaczne wskazują na tę samą bazę kodów - nic nie instaluj, środowisko deweloperskie, tj. , XAMPP)
plik hosts (dodaj wpis)
plik: / etc / hosts (nie Windows)
Konfiguracja httpd.conf (włącz vhosts)
plik: /XAMPP/etc/httpd.conf
Konfiguracja httpd-vhosts.conf
plik: XAMPP / etc / extra / httpd-vhosts.conf
uruchom ponownie apache
utwórz plik pac:
zapisz jako cokolwiek.pac gdziekolwiek chcesz, a następnie załaduj plik do sieci przeglądarki> proxy> ustawienia auto_konfiguracji (załaduj ponownie, jeśli to zmienisz)
źródło
dnsmasq pracował dla mnie, tyle że musiałem zrobić kilka dodatkowych kroków.
Oto pełna procedura:
Przygotuj
/etc/resolv.conf
z następującym wierszemDodaj następujące wiersze do
/etc/dnsmasq.conf
Uruchom ponownie dnsmasq
źródło