Localhost - ustawianie wildcard dns

Witajcie - pytanie może nie związanie ściśle z RoR, natomiast pośrednio owszem.
Planuję wykonać aplikację korzystająca z wielu subdomen i chcę ustawić sobie wildcard dns.
Railsy subdomeny będę obsługiwał przez subdomain-fu - natomiast nie wiem jak ustawić serwer, aby działał z subdomenami - system to osx 10.5, serwer mongrel.
Próbowałem w /etc/hosts dodać linijkę

127.0.0.1	*.localhost

ale to nic nie dało (tzn. wywołanie foo.localhost:3000) nie działa
z góry dzieki za wszelką pomoc

tak mi przychodzi do głowy - pamiętałeś o flushowaniu dns cache?

Ustawienie w /etc/hosts wildcarda nic nie daje, bo to po prostu nie zadziała. Wyjściem jest skorzystanie z plików .pac i stworzenie konfiguracji proxy dla przeglądarki w JavaScript.

Zakładając, że chcemy obsłużyć subdomeny dla domeny *.localhost, tworzymy plik, np. ~/.proxy.pac z zawartością:

function FindProxyForURL(url, host) { if (shExpMatch(host, "*.localhost")) { return "PROXY localhost"; } return "DIRECT"; }
Następnie w ustawieniach przeglądarki (w przypadku Firefoxa będzie to Edycja->Preferencje->Zaawansowane->Sieć->Ustawienia, pole Adres URL automatycznej konfiguracji) wpisujemy ścieżkę do pliku *.pac i zatwierdzamy zmiany. Po tej operacji wszelkie żądania na dowolną subdomenę w domenie localhost będą kierowane pod tę właśnię domenę.

Możesz postawić sobie binda/tinydns na localhoście :stuck_out_tongue:

Ja mam:

127.0.0.1 slice1.localdomain
127.0.0.1 slice2.localdomain
127.0.0.1 slice3.localdomain
127.0.0.1 slice4.localdomain
127.0.0.1 slice5.localdomain

w /etc/hosts i starcza :wink:

Problem zaczyna się pojawiać, gdy robimy aplikację, w której, np. każdy użytkownik ma subdomene postaci login.domain.com - wtedy nasz /etc/hosts rozrastałby się błyskawicznie…

a nie wystarczy 5-10 subdomen do testów?

soup.io jest napisane w railsach i u nich to bangla (w sensie subdomen per-user). subdomain_fu?

no właśnie to cały mój problem - że chcę przepisywać dowolną ilość domen.

pewnie że wystarczy- jednak to rozwiązanie śmierdzi mi troszkę partyzantką - wyrobiłem w sobie nawyk wykonywania rzeczy do porządku*, dlatego wolałbym znaleźć rozwiązanie na wildcard dns.

    • silniejszy od tego nawyku jest jednak pragmatyzm -jeśli rozwiązanie zajełoby dużo czasu, to ustawi się wtedy tylko na serwerze produkcyjnym, a na localu zostawię te 5-10 subdomen.

Rozwiązanie szybkie: dopisz sobie w /etc/hosts

Rozwiązanie mniej szybkie: zainstaluj Bind i skonfiguruj albo inny serwer DNS.

I jedno i drugie w podobny sposób ingerują w Twój system.

Rozwiązanie dla geeka: pobierz paczkę z biblioteką która jest resolverem w Twoim systemie, modyfikujesz źródełka dodając opcję rozpoznawania *.localhost, kompilujesz i instalujesz ;D. Na Ubuntu jest to paczka libc6. Na Mac OS jest trochę przerąbane ale pewnie też się da przekompilować libc ;). Ot tak sobie wymyśliłem :wink:

ok - wcześniej sprawdzalem rozwiązanie @GhandaLa - ale nie działało - powodem było wywoływanie na porcie 3000, przez co skrypt nie chwytał - ale gdy uruchomiłem railsy na porcie 80, ładnie śmiga na wildcard dns. można pewno przerobić skrypt, żeby chwytał na porcie 3000, ale skoro działa, to nie będę tego przerabiał - dzięki za §odpowiedzi :wink: