fast-je
@fast-je
Пишу на php.

Как отправить запрос через curl php на localhost?

Привет.
У меня проблема с отправкой запроса на api центрифуги с php. https://centrifugal.github.io/centrifugo/
У меня есть docker compose, центрифуга работает правильно.
Но когда я отправляю запрос curl с php на localhost, у меня появляется ошибка
Не удалось подключиться к порту 80 localhost через 10 мс: соединение отклонено

То есть я делаю запрос на свой локальный хост, но php о нем совсем ничего не знает.
Как это исправить?
  • Вопрос задан
  • 77 просмотров
Решения вопроса 1
karabanov
@karabanov
Системный администратор
localhost в контейнере свой, отсюда и ошибка.

Вариант так себе, но рабочий - настрой сервис, который работает на хостовой машине, так, что бы он слушал на всех IP (возможно это уже сделано) и обращайся к нему из контейнера по IP шлюза (он доступен как с хостовой машины, так и из контейнера). IP шлюза - это тот, что назначен на докеровый бридж узнать можно командой:
docker inspect --format='{{range .NetworkSettings.Networks}}{{.Gateway}}{{end}}' <container_name>

Для удобства можешь дать ему имя с помощью extra_hosts: в docker-compose.yml

Хороший вариант - заверни сервис, который сейчас работает на хостовой машине, в контейнер и добавь его в этот же compose, тогда сможешь обращаться к нему по имени сервиса, ведь они будут работать в рамках одной виртуальной сети.

И плохой вариант убери изоляцию для сети, то есть Use host networking. Директива network_mode в docker-compose.yml
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы