add: Nginx и Certboot в Docker (5)
This commit is contained in:
parent
9064bad6d1
commit
91fafb96cf
@ -111,17 +111,17 @@ networks:
|
||||
- `portainer` (у вас его может и не быть, или быть какой-то другой сервис, который вы будете производить):
|
||||
- `image: portainer/portainer-ce:latest` — используем образ Portainer Community Edition;
|
||||
- `container_name: portainer` — имя контейнера `portainer`;
|
||||
- `volumes: ...` — монтируем файлы или тома изнутри контейнера Portainer на хост. В данном случае монтируем: сокет --
|
||||
- `volumes: ...` — монтируем файлы или тома изнутри контейнера на хост. В данном случае маппим: сокет —
|
||||
чтобы изнутри контейнера Portainer можно было через Docker API управлять Docker самого хоста (вот так хитро) и
|
||||
каталог `/home/web/docker-data/portainer` — чтобы сохранять настройки и данные Portainer между перезапусками;
|
||||
- `restart: always` — автоматически перезапускаем контейнер при его остановке;
|
||||
- `restart: always` — автоматически перезапускаем контейнер при его остановке или перезагрузке хоста;
|
||||
- `networks: ...` — подключаем контейнер к пользовательской (внутри-контейнерной) сети `web`.
|
||||
- `nginx`:
|
||||
- `image: nginx:latest` — используем образ Nginx;
|
||||
- `container_name: nginx` — имя контейнера `nginx`;
|
||||
- `ports: ...` — пробрасываем порты 80 и 443 на хост;
|
||||
- `ports: ...` — пробрасываем порты 80 и 443 из контейнера на хост;
|
||||
- `volumes: ...` — монтируем каталог с конфигурационными файлами Nginx;
|
||||
- `restart: always` — автоматически перезапускаем контейнер при его остановке;
|
||||
- `restart: always` — автоматически перезапускаем контейнер при его остановке или перезагрузке хоста;
|
||||
- `networks: ...` — подключаем контейнер к пользовательской (внутри-контейнерной) сети `web`.
|
||||
- `networks: ...`:
|
||||
- `web`:
|
||||
@ -211,7 +211,7 @@ mkdir -p /home/web/docker-data/letsencrypt/_ownership_check
|
||||
```
|
||||
|
||||
*Тут происходит очень похожий маппинг тома для сертификатов Let's Encrypt и временных файлов для проверки
|
||||
владения, но теперь для контейнера nginx*:
|
||||
владения, но теперь в контейнер с nginx*:
|
||||
|
||||
- `volumes: ...`:
|
||||
- `/home/web/docker-data/letsencrypt/_cert:/etc/letsencrypt` — маппинг тома для сертификатов Let's Encrypt, чтобы их
|
||||
@ -252,18 +252,21 @@ server {
|
||||
включённом proxy_pass.
|
||||
|
||||
**Важно!** После того как сертификаты Let's Encrypt будут получены, не надо удалять этот `location ^~` из конфигурации!
|
||||
Он нужен для автоматического обновления сертификатов. При обновлении сертификатов certbot будет снова создавать
|
||||
временные файлы в каталоге `/var/www/letsencrypt/` а Let's Encrypt проверять их доступность. Если nginx не сможет отдать
|
||||
эти файлы, то обновление сертификатов не произойдет.
|
||||
Он нужен для автоматического обновления сертификатов: certbot будет снова создавать временные файлы в каталоге
|
||||
`/var/www/letsencrypt/`, а сервера Let's Encrypt "дергать" их и тем самым проверять права владения. Если nginx
|
||||
не сможет отдать эти файлы, то и обновление сертификатов не произойдет.
|
||||
|
||||
Останавливаем docker-compose и запускаем только nginx из него:
|
||||
Останавливаем docker-compose и перезапускаем (сначала все контейнеры, чтобы инициализировать контейнер certbot, а затем
|
||||
только nginx, чтобы он отдавать временные файлы для проверки владения доменом):
|
||||
```bash
|
||||
cd /home/web/docker-data
|
||||
docker-compose down
|
||||
docker-compose up -d
|
||||
docker-compose down
|
||||
docker-compose up -d nginx
|
||||
```
|
||||
|
||||
Теперь можно запустить certbot для получения сертификатов Let's Encrypt:
|
||||
Теперь нужно мз контейнера `certbot` инициализировать получение сертификатов Let's Encrypt:
|
||||
```bash
|
||||
docker run --rm --name letsencrypt-certbot \
|
||||
-v /home/web/docker-data/letsencrypt/_ownership_check:/var/www/html \
|
||||
@ -296,8 +299,8 @@ If you like Certbot, please consider supporting our work by:
|
||||
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
```
|
||||
|
||||
Если у вас что-то пойдёт не так, то скорее всего что-то напутано в маппингах томов, или в конфигурации nginx. Вы можете
|
||||
посмотреть логи certbot (возможно вам придется замаппить каталог логов из контейнера certbot на хост).
|
||||
Если у вас что-то пойдёт не так, то скорее всего напутано в маппингах томов или в конфигурации nginx. Вы можете
|
||||
посмотреть логи `certbot` (возможно вам придется замаппить каталог логов из контейнера certbot на хост).
|
||||
|
||||
Уже хочется проверить, что все работает? Рано! Нам нужно добавить в конфигурацию nginx SSL-сертификаты и настроить
|
||||
перенаправление с HTTP на HTTPS. Отредактируем конфиг nginx, теперь он будет выглядеть так:
|
||||
|
Loading…
Reference in New Issue
Block a user