Nginx в Docker - PullRequest
       43

Nginx в Docker

0 голосов
/ 08 апреля 2020

Я использую Docker контейнеры и хотел бы, чтобы Nginx обслуживал ресурсы внешнего интерфейса или указывал на правильный бэкэнд-сервис, следовательно, действуя в качестве обратного прокси-сервера. Как мне это сделать? Нужно ли настраивать другой Nginx сервер для каждой из базовых служб?

Также я не совсем понимаю, как Nginx работает в docker. Насколько я понимаю, вы указываете тома, которые устанавливаются в каталог Nginx publi c. Если я обслуживаю ресурсы c, это не проблема. Однако, если я загружаю все зависимости php и необходимые зависимости для запуска моего приложения в отдельном контейнере (назовите его laravel контейнер), а затем ссылаюсь на эти файлы в каталоге Nginx publi c, как это сделать Nginx затем может запустить этот код, и все ли внутренние вычисления выполняются контейнером Nginx или контейнером laravel?

Это, вероятно, глупые вопросы, но я в данный момент очень смущен.

1 Ответ

0 голосов
/ 08 апреля 2020

Чтобы настроить Nginx в контейнере docker, вам нужно будет включить файл nginx .conf при запуске вашего контейнера. Чтобы добавить этот файл, вы можете использовать аргумент -v. Это должно выглядеть примерно так.

docker run -d -v $PWD/nginx.conf:/etc/nginx/nginx.conf nginx

В вашем файле Nginx .conf вы можете указать, как должен вести себя Nginx. Пример обратного прокси-сервера может выглядеть следующим образом:

events {
  worker_connections  4096;  ## Default: 1024
}

http {
  server {
    listen          80;
    listen          [::]:80;
    server_name     example.com;

    location / {
      proxy_pass http://172.17.0.1:8080;
    }
  }
}

Это перенаправляет запросы на example.com/ в контейнер docker с docker ip 172.17.0.1 на порт 8080.

Полное описание для настройки файла Nginx можно найти здесь: https://www.nginx.com/resources/wiki/start/topics/examples/full/

Также страница Nginx на хабе docker может помочь вам получить начал обслуживать стати c содержание: https://hub.docker.com/_/nginx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...