Исходный код вики Nginx auto proxy for containers
Редактировал(а) Alexandr Fokin 2024/11/23 17:34
Скрыть последних авторов
| author | version | line-number | content |
|---|---|---|---|
| |
1.2 | 1 | |(% style="width:81px" %) |(% style="width:1369px" %)Данные контейнеры позволяют сравнительно легко организовать проксирование запросов по доменам, расположенном на одном хосте. |
| |
1.10 | 2 | |(% style="width:81px" %) |(% style="width:1369px" %)[[nginx>>doc:Хостинг.ПО.Proxy.nginx.WebHome]] |
| |
1.1 | 3 | |(% style="width:81px" %) |(% style="width:1369px" %)((( |
| 4 | |(% style="width:282px" %)jwilder / nginx-proxy|(% style="width:1068px" %)((( | ||
| 5 | |Контейнер с конфигурацией, позволяющий автоматически обнаруживать контейнеры (используется маркировка) и конфигурировать [[HTTP>>doc:Сети.Протоколы.HTTP 1\.1.WebHome]] reverse proxy. | ||
| 6 | Выступает в роли общей точки входа (порты 80 и 443), направляет запрос в контейнер обработчик. | ||
| 7 | Для маршрутизации (и сопоставления) используются домены (предполагает наличие [[DNS>>doc:Сети.Механизмы.DNS.WebHome]] и доменного имени). | ||
| 8 | В контейнере сервисе необходимо указать домен и порт, он должен иметь общую сеть с proxy. | ||
| 9 | |VIRTUAL_HOST=<домен> | ||
| 10 | VIRTUAL_PORT=<порт> | ||
| 11 | ))) | ||
| 12 | |(% style="width:282px" %)jrcs / letsencrypt-nginx-proxy-companion|(% style="width:1068px" %)((( | ||
| 13 | |Контейнер, автоматизирующий процесс подключения [[SSL>>doc:Сети.Протоколы.SSL.WebHome]] сертификата для использования протокола HTTPS. | ||
| 14 | Работа вместе с nginx-proxy. | ||
| 15 | Для работы также добавляется еще один маркер, в котором также указан домен. | ||
| 16 | |LETSENCRYPT_HOST=<домен> | ||
| 17 | ))) | ||
| 18 | ))) | ||
| |
1.3 | 19 | |(% style="width:81px" %) |(% style="width:1369px" %)((( |
| 20 | |Использование Docker для настройки обратного прокси Nginx с автоматической генерацией SSL | ||
| 21 | [[https:~~/~~/andreyex.ru/linux/ispolzovanie-docker-dlya-nastrojki-obratnogo-proksi-nginx-s-avtomaticheskoj-generatsiej-ssl/>>https://andreyex.ru/linux/ispolzovanie-docker-dlya-nastrojki-obratnogo-proksi-nginx-s-avtomaticheskoj-generatsiej-ssl/]] | ||
| 22 | |Using Docker to Set up Nginx Reverse Proxy With Auto SSL Generation | ||
| 23 | [[https:~~/~~/roman-academy.medium.com/using-docker-to-set-up-nginx-reverse-proxy-with-auto-ssl-generation-3a8a360b69ae>>https://roman-academy.medium.com/using-docker-to-set-up-nginx-reverse-proxy-with-auto-ssl-generation-3a8a360b69ae]] | ||
| |
1.4 | 24 | |How to bring up a reverse proxy using the jwilder/nginx-proxy |
| 25 | [[https:~~/~~/docs.exalate.com/docs/scripts-how-to-bring-up-a-reverse-proxy-using-the-jwildernginx-proxy>>https://docs.exalate.com/docs/scripts-how-to-bring-up-a-reverse-proxy-using-the-jwildernginx-proxy]] | ||
| |
1.3 | 26 | ))) |
| |
1.4 | 27 | |(% style="width:81px" %) |(% style="width:1369px" %)((( |
| |
1.6 | 28 | |(% style="width:723px" %)((( |
| |
1.5 | 29 | (% style="width:100%" %) |
| |
1.6 | 30 | |(% style="width:440px" %)Точка входа - http порты.|(% style="width:264px" %)80, 443 |
| 31 | |(% style="width:440px" %)Общая сеть, к которой подключаются контейнеры сервисы.|(% style="width:264px" %)proxyNet | ||
| 32 | |(% style="width:440px" %)Для persist состояния необходимо определить общие volume.|(% style="width:264px" %) | ||
| 33 | |(% style="width:440px" %)Создание внешней общей сети.|(% style="width:264px" %){{code language="cmd"}}docker network create proxyNet{{/code}} | ||
| |
1.7 | 34 | |(% style="width:440px" %)Конфигурацию nginx можно увидеть в файле |
| 35 | (отображение правил proxy).|(% style="width:264px" %)etc/nginx/conf.d/default.conf | ||
| |
1.8 | 36 | |(% style="width:440px" %)Пример маркировки контейнера сервиса.|(% style="width:264px" %){{code language="yaml"}}environment: |
| 37 | - VIRTUAL_HOST=<subdomain.domain> | ||
| 38 | - LETSENCRYPT_HOST=<subdomain.domain> | ||
| |
1.9 | 39 | - VIRTUAL_PORT=8080 |
| 40 | |||
| 41 | networks: | ||
| 42 | - "proxyNet" | ||
| 43 | |||
| 44 | networks: | ||
| 45 | proxyNet: | ||
| 46 | external: true{{/code}} | ||
| |
1.6 | 47 | )))|(% style="width:655px" %){{code language="yaml"}}services: |
| |
1.1 | 48 | |
| |
1.3 | 49 | reverse-proxy: |
| 50 | image: "jwilder/nginx-proxy:latest" | ||
| 51 | container_name: "reverse-proxy" | ||
| 52 | volumes: | ||
| 53 | - "html:/usr/share/nginx/html" | ||
| 54 | - "dhparam:/etc/nginx/dhparam" | ||
| 55 | - "vhost:/etc/nginx/vhost.d" | ||
| 56 | - "certs:/etc/nginx/certs" | ||
| 57 | - "/run/docker.sock:/tmp/docker.sock:ro" | ||
| 58 | restart: "always" | ||
| 59 | networks: | ||
| 60 | - "proxyNet" | ||
| 61 | ports: | ||
| 62 | - "80:80" | ||
| 63 | - "443:443" | ||
| 64 | |||
| 65 | letsencrypt: | ||
| 66 | image: "jrcs/letsencrypt-nginx-proxy-companion:latest" | ||
| 67 | container_name: "letsencrypt-helper" | ||
| 68 | volumes: | ||
| 69 | - "html:/usr/share/nginx/html" | ||
| 70 | - "dhparam:/etc/nginx/dhparam" | ||
| 71 | - "vhost:/etc/nginx/vhost.d" | ||
| 72 | - "certs:/etc/nginx/certs" | ||
| 73 | - "/var/run/docker.sock:/var/run/docker.sock:ro" | ||
| 74 | environment: | ||
| 75 | NGINX_PROXY_CONTAINER: "reverse-proxy" | ||
| 76 | DEFAULT_EMAIL: "user@domain.ru" | ||
| 77 | restart: "always" | ||
| 78 | depends_on: | ||
| 79 | - "reverse-proxy" | ||
| 80 | networks: | ||
| 81 | - "proxyNet" | ||
| 82 | volumes: | ||
| 83 | certs: | ||
| 84 | html: | ||
| 85 | vhost: | ||
| 86 | dhparam: | ||
| 87 | |||
| 88 | networks: | ||
| 89 | proxyNet: | ||
| 90 | external: true{{/code}} | ||
| |
1.6 | 91 | |(% style="width:723px" %) |(% style="width:655px" %) |
| |
1.4 | 92 | ))) |