Невозможно использовать поддомен NGINX внутри контейнера Docker

Этот вопрос довольно глупый, он касается использования имен служб Docker в качестве имен хостов, поэтому вот контекст:

Я использую следующие контейнеры NGINX: base, php-fpm и nginx. У меня также есть проект Laravel, который находится в корневом проекте в папке / api. Я также запускаю haproxy на порту 5000 для балансировки нагрузки запросов по контейнерам php-fpm.

Базовый контейнер содержит среду linux, из которой я могу запускать команды для phpunit, npm и буквально иметь доступ к файлам других контейнеров, которые отправляются с использованием тома из docker-compose.

Php-fpm содержит среду для запуска PHP.

Nginx содержит сервер NGINX, который настроен для хранения двух веб-сайтов: корневого веб-сайта (localhost) и поддомена api (api.localhost). Файл api. subdomain указывает на папку / api в корневом проекте, а корневой веб-сайт (localhost) указывает на папку / frontend в корневом проекте.

Проблема в том, что в базовом сервисном контейнере я не могу запустить команду curl для доступа к веб-сайту api.localhost. Я попытался использовать curl для доступа к nginx, используя имя службы в docker-compose (это nginx):

$ curl http: // nginx

и он работает отлично, но папка внешнего интерфейса отвечает кодом из папки внешнего интерфейса. Я понятия не имею, как использовать имя службы для доступа к api.localhost через контейнер. я пытался

$ curl http: //api.nginx $ curl http: //api.localhost

Даже localhost не отвечает на команду curl:

$ curl http: // localhost

Есть ли способ получить доступ к субдомену из контейнера NGINX, используя имя службы в качестве имени хоста?

Не уверен в этом, но настроил бы запись / etc / hosts в контейнере для api.something, чтобы указать на работу вашего контейнера.

Nigel Ren 31.05.2018 10:11
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
1
427
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я обнаружил, что поддомены не работают должным образом, используя имя NGINX и Docker Service в качестве имени хоста.

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

Другие вопросы по теме