2012-05-23 15 views
132

Czy mogę mapować adres IP, taki jak 127.0.0.1, na nazwę domeny i na port?Czy mogę zmapować nazwę hosta * i * port z/etc/hosts?

Na przykład chciałbym map 127.0.0.1 do api.example.com:8000

Dzięki!

+5

Nie można odwzorować numer portu w/etc/hosts. Zamiast tego możesz zdefiniować jako "127.0.0.1 api.mydomain.com" i uzyskać do niego dostęp w przeglądarce, np. 'Api.mydomain.com: 8080' –

+0

Przeczytałem gdzieś, że dns obsługuje to. Możesz mieć rekord, który mówi na www.example.com http jest na porcie 80, a także rekord A, aby powiedzieć, że adres 127.0.0.1 również powiedział, że nie był dobrze obsługiwany. Po tym niewiele się działo. –

Odpowiedz

127

Nie, to niemożliwe. Port nie jest częścią nazwy hosta, więc nie ma znaczenia w pliku-hosts.

97

Jeśli naprawdę potrzebujesz tego, użyj odwrotnego proxy.

Na przykład, z nginx jako reverse proxy

server { 
    listen  api.mydomain.com:80; 
    server_name api.mydomain.com; 
    location/{ 
    proxy_pass http://127.0.0.1:8000; 
    } 
} 
+3

Myślę, że linia proxy_pass powinna wyglądać tak: 'proxy_pass http: //127.0.0.1: 8000;' Mam "prefiks nieprawidłowego adresu URL" na Nginx 1.4.3. – Nobu

+0

dzięki za tę wspaniałą wskazówkę! proste rozwiązanie dla większości serwerów. – micahscopes

+0

Używam tej sztuczki do mapowania portów zdalnego komputera (np. Http://cloud.app:80, podczas gdy rzeczywisty port to 8080). Bardzo przydatne do testowania węzłów Confluence klastra, ale uzyskiwania dostępu do nich na tym samym bazowym adresie URL. Dzięki! –