Исходный код вики 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]] |
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 | ))) |