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

Запрос Curl не разрешается на localhost

У меня есть сервер ubuntu, на котором запущен apache на localhost / port 80. Это домен sub.domain.com

Если я сделаю запрос на завиток http: // localhost на этом компьютере немедленно появится ошибка «Не удалось подключиться к хосту».

Если я сделаю запрос curl к sub.domain.com на этом компьютере, он будет находиться там в бесконечном цикле, пока не истечет время ожидания через несколько минут.

Если я открываю sub.domain.com в своем веб-браузере на другом компьютере, отображается моя html-страница.

Если я сделаю запрос curl на sub.domain.com с другой машины, он подключится.

В чем дело?

Вероятно, вам нужно указать заголовки хоста с помощью curl, иначе Apache не знает, какую страницу отображать - в зависимости от того, как вы настроили, localhost, вероятно, покажет страницу apache по умолчанию, в то время как ваш виртуальный хост (sub.domain.com) будет покажите страницу, которую вы ожидаете.

Попробуйте использовать:

curl -H "Host:sub.domain.com" 127.0.0.1

Ваш комментарий: «он прослушивает 192.168.2.1, а затем общедоступный IP. Устройство обратной петли - 127.0.0.1». Итак, Apache не слушаете 127.0.0.1? Если это так, то это ваша проблема. Настройте Apache для прослушивания всех интерфейсов или, по крайней мере, добавьте интерфейс обратной связи к тому, что прослушивает Apache.

Следующая проблема: «Если я сделаю запрос curl к sub.domain.com на этой машине, он будет оставаться там в бесконечном цикле, пока не истечет время ожидания через несколько минут». Что ты получишь, когда ты ping sub.domain.com? Эта проблема выглядит как проблема разрешения имен на этом компьютере, поскольку вы можете успешно подключиться с другого компьютера.

Делать ping sub.domain.com с другой машины и записать IP-адрес в ответах (xxx.yyy.zzz.www). Затем с машины apache используйте:

curl -H "Host:sub.domain.com" xxx.yyy.zzz.www