NGINX – это популярный веб-сервер и обратный прокси-сервер, который обеспечивает эффективную маршрутизацию входящих запросов к различным серверным службам. В сочетании с Docker он становится еще более мощным, позволяя легко развертывать и управлять несколькими приложениями в контейнерах. В этой статье мы рассмотрим несколько методов настройки обратного прокси-сервера NGINX Docker для локального хоста, а также примеры кода для каждого подхода.
Метод 1: Docker Compose с официальным изображением NGINX
Docker Compose предоставляет удобный способ определения и управления многоконтейнерными приложениями. Вы можете использовать официальный образ NGINX Docker и настроить его в качестве обратного прокси-сервера, добавив собственный файл nginx.conf
. Вот пример файла docker-compose.yml
:
version: '3'
services:
reverse-proxy:
image: nginx
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
ports:
- 80:80
Метод 2: Менеджер прокси-серверов NGINX
Менеджер прокси-серверов NGINX — это веб-инструмент с графическим пользовательским интерфейсом, который упрощает настройку обратных прокси-серверов NGINX. Он предоставляет интуитивно понятный интерфейс для создания прокси-хостов, SSL-сертификатов и многого другого и управления ими. Чтобы настроить его:
- Установите Docker и Docker Compose на свой компьютер.
- Создайте файл
docker-compose.yml
со следующим содержимым:
version: '3'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
ports:
- '80:80'
- '81:81'
- '443:443'
- '444:444'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
- Запустите
docker-compose up -d
, чтобы запустить NGINX Proxy Manager. - Войдите в веб-интерфейс по адресу
http://localhost:81
и следуйте указаниям мастера установки, чтобы настроить обратный прокси-сервер.
Метод 3: пользовательская конфигурация NGINX
Если вы предпочитаете больше контроля над конфигурацией NGINX, вы можете создать собственный образ Docker NGINX с желаемой конфигурацией. Вот пример Dockerfile:
FROM nginx
COPY nginx.conf /etc/nginx/nginx.conf
Затем вы можете создать образ с помощью docker build -t my-nginx .
и запустить его с помощью docker run -p 80:80 my-nginx
.
Метод 4: обратный прокси-сервер Traefik
Traefik — еще одно популярное решение для обратного прокси-сервера, которое хорошо интегрируется с Docker. Он автоматически обнаруживает контейнерные службы и динамически настраивает обратный прокси-сервер на основе меток. Чтобы использовать Traefik:
- Установите Docker и Docker Compose.
- Создайте файл
docker-compose.yml
со следующим содержимым:
version: '3'
services:
reverse-proxy:
image: traefik
command:
- --api.insecure=true
- --providers.docker=true
ports:
- 80:80
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- Определите метки в файле
docker-compose.yml
вашего приложения, чтобы указать правила маршрутизации и серверные службы.