Docker. Образы - Nginx proxy

Page / - Изменено Alexandr Fokin в 2024/11/23 17:02

Nginx proxy

Изменено Alexandr Fokin

в 2024/11/23 17:02

Оглавление

Данные контейнеры позволяют сравнительно легко организовать проксирование запросов по доменам, расположенном на одном хосте.
nginx
jwilder / nginx-proxy Контейнер с конфигурацией, позволяющий автоматически обнаруживать контейнеры (используется маркировка) и конфигурировать HTTP reverse proxy. Выступает в роли общей точки входа (порты 80 и 443), направляет запрос в контейнер обработчик. Для маршрутизации (и сопоставления) используются домены (предполагает наличие DNS и доменного имени). В контейнере сервисе необходимо указать домен и порт, он должен иметь общую сеть с proxy. VIRTUAL_HOST=<домен> VIRTUAL_PORT=<порт> jrcs / letsencrypt-nginx-proxy-companion Контейнер, автоматизирующий процесс подключения SSL сертификата для использования протокола HTTPS. Работа вместе с nginx-proxy. Для работы также добавляется еще один маркер, в котором также указан домен. LETSENCRYPT_HOST=<домен>
Использование Docker для настройки обратного прокси Nginx с автоматической генерацией SSL https://andreyex.ru/linux/ispolzovanie-docker-dlya-nastrojki-obratnogo-proksi-nginx-s-avtomaticheskoj-generatsiej-ssl/ Using Docker to Set up Nginx Reverse Proxy With Auto SSL Generation https://roman-academy.medium.com/using-docker-to-set-up-nginx-reverse-proxy-with-auto-ssl-generation-3a8a360b69ae How to bring up a reverse proxy using the jwilder/nginx-proxy https://docs.exalate.com/docs/scripts-how-to-bring-up-a-reverse-proxy-using-the-jwildernginx-proxy
Точка входа - http порты. 80, 443 Общая сеть, к которой подключаются контейнеры сервисы. proxyNet Для persist состояния необходимо определить общие volume. Создание внешней общей сети. docker network create proxyNet Конфигурацию nginx можно увидеть в файле (отображение правил proxy). etc/nginx/conf.d/default.conf Пример маркировки контейнера сервиса. environment: - VIRTUAL_HOST=<subdomain.domain> - LETSENCRYPT_HOST=<subdomain.domain> - VIRTUAL_PORT=8080 networks: - "proxyNet" networks: proxyNet: external: true services: reverse-proxy: image: "jwilder/nginx-proxy:latest" container_name: "reverse-proxy" volumes: - "html:/usr/share/nginx/html" - "dhparam:/etc/nginx/dhparam" - "vhost:/etc/nginx/vhost.d" - "certs:/etc/nginx/certs" - "/run/docker.sock:/tmp/docker.sock:ro" restart: "always" networks: - "proxyNet" ports: - "80:80" - "443:443" letsencrypt: image: "jrcs/letsencrypt-nginx-proxy-companion:latest" container_name: "letsencrypt-helper" volumes: - "html:/usr/share/nginx/html" - "dhparam:/etc/nginx/dhparam" - "vhost:/etc/nginx/vhost.d" - "certs:/etc/nginx/certs" - "/var/run/docker.sock:/var/run/docker.sock:ro" environment: NGINX_PROXY_CONTAINER: "reverse-proxy" DEFAULT_EMAIL: "user@domain.ru" restart: "always" depends_on: - "reverse-proxy" networks: - "proxyNet" volumes: certs: html: vhost: dhparam: networks: proxyNet: external: true