2012-05-23 13 views
132

¿Puedo asignar una dirección IP como 127.0.0.1 a un nombre de dominio y un puerto?¿Puedo asignar un nombre de host * y * un puerto con/etc/hosts?

Por ejemplo, me gustaría asignar a 127.0.0.1api.example.com:8000

Gracias!

+5

No se puede asignar el número de puerto en/etc/hosts. En su lugar, puede definir como '127.0.0.1 api.mydomain.com' y acceder a él en el navegador como' api.midominio.com: 8080' –

+0

Leí en algún lado que dns admite esto. Puede tener un registro que diga en www.example.com que http está en el puerto 80 y también un registro A para indicar que la dirección es 127.0.0.1 y que también dijo que no estaba bien soportado. No dijo mucho después de eso. –

Respuesta

127

No, eso no es posible. El puerto no es parte del nombre de host, por lo que no tiene ningún significado en el archivo hosts.

97

Si realmente necesita hacer esto, use el proxy inverso.

Por ejemplo, con Nginx como proxy inverso

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

Creo que la línea de proxy_pass debería verse así: 'proxy_pass http: //127.0.0.1: 8000;' Recibí el "prefijo de URL no válido" en nginx 1.4.3. – Nobu

+0

gracias por este maravilloso consejo! solución simple para la mayoría de los servidores. – micahscopes

+0

Estoy usando este truco para mapear puertos de una máquina remota (por ejemplo, http://cloud.app:80 mientras que el puerto real es 8080). Muy útil para probar nodos Confluence de un clúster pero accediéndolos en la misma URL base. ¡Gracias! –

Cuestiones relacionadas