Назад | Перейти на главную страницу

Важно ли использовать localhost / 127.0.0.1, а не собственный IP-адрес машины?

Я использую Amazon AWS EC2 под управлением Amazon Linux, хотя это может не иметь значения для ответа.

Скажем, у меня есть три хоста, H1, H2, H3, с частными IP-адресами 10.0.0.1, 10.0.0.2 и 10.0.0.3. Это можно представить в файле / etc / hosts следующими строками:

127.0.0.1   localhost localhost.localdomain
10.0.0.1    H1
10.0.0.2    H2
10.0.0.3    H3

В коде php я выполняю такие действия, как запуск curl для доступа к материалам на определенном хосте, основываясь на неявном знании того, что предлагает этот хост. Я бы предпочел не беспокоиться о том, является ли конкретный хост, к которому я обращаюсь, хостом, на котором выполняется сам код, просто обращайтесь к H1, H2 или H3. я мог используйте другой файл / etc / hosts на каждом хосте, изменив строку с его частным IP-адресом, чтобы использовать адрес 127.0.0.1. Но действительно ли это важно? Если я использую одинаковые файлы / etc / hosts на всех машинах, жертвую ли я производительностью или функциональностью?

Действительно ли сетевой доступ к собственному частному IP-адресу машины вызывает реальный «внешний» трафик, или он все равно обнаруживается и использует коннектор обратной связи, например 127.0.0.1? Видит ли процесс, получающий запрос, исходный адрес как собственный частный IP-адрес машины, или он все равно видит 127.0.0.1?

Используя идентичный hosts файл в порядке и не повлияет на производительность, трафик останется локальным, если вы подключитесь к H1 из H1. Однако, если вы подключитесь к localhost/127.0.0.1, исходный IP-адрес будет 127.0.0.1 также, но если вы подключитесь к H1, исходный IP-адрес будет 10.0.0.1 (например, в журнале Apache).

Одно отличие: некоторые приложения, особенно MySQL / MariaDB, переключаются на использование сокетов домена Unix для трафика, если вы подключаетесь к localhost, но используйте стек IP при использовании 127.0.0.1 или фактический IP-адрес или имя хоста машины. Говорят, что это дает небольшое преимущество в производительности, хотя я никогда не тестировал это.