Чи можу я зіставити ім'я хоста * та * порт із / etc / hosts? [зачинено]


189

Чи можу я 127.0.0.1вказати IP-адресу на зразок доменного імені та порту?

Наприклад, я хотів би, щоб відобразити 127.0.0.1вapi.example.com:8000


6
Ви не можете зіставити номер порту в / etc / hosts. Натомість ви можете визначити як 127.0.0.1 api.mydomain.comта отримати доступ до нього у веб-переглядачі, наприкладapi.mydomain.com:8080
Fizer Khan

Я десь читав, що dns це підтримує. Ви можете мати запис, який пише, що на веб-сайті www.example.com http знаходиться на порту 80, а також запис A, який говорить про те, що адреса 127.0.0.1, він також сказав, що вона не підтримується добре. Це мало що сказало після цього.
ctrl-alt-delor

Відповіді:


185

Ні, це неможливо. Порт не є частиною імені хоста, тому він не має значення у hostsфайлі -file.


134

Якщо вам дійсно потрібно це зробити, використовуйте зворотний проксі.

Наприклад, з nginx як зворотний проксі

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

4
Я думаю, рядок proxy_pass повинен виглядати приблизно так: proxy_pass http://127.0.0.1:8000;я отримав "недійсний префікс URL" на nginx 1.4.3.
Нобу

дякую за цю чудову пораду! просте рішення для більшості серверів.
міхескопи

Я використовую цей трюк для картографування портів віддаленої машини (наприклад, cloud.app:80, а фактичний порт - 8080). Дуже корисно для тестування вузлів Confluence кластера, але доступ до них за тією ж базовою URL-адресою. Дякую!
Габор Надь

9
У мене була однакова проблема, і рішення з використанням цього зворотного проксі дуже корисно. Хоча, я хотів простішого рішення, тому я зробив цей інструмент: github.com/cristianoliveira/ergo Я сподіваюся, що це допоможе якось :)
Крістіан Олівейра

Дякую @CristianOliveira! Це допомогло мені
ЛОТИ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.