Моя цель - запустить приложение django на экземпляре EC2 с использованием nginx внутри контейнера докеров.
У меня есть приложение. У меня есть домен. Имею экземпляр EC2. Я пытаюсь собрать все воедино.
Чтобы настроить мое приложение с помощью nginx, мне нужны сертификаты ssl. Я хочу использовать Let's encrypt. Чтобы использовать Let's encrypt, мне нужно подтвердить свой домен.
Но мой домен или, скорее, A-запись моего домена сейчас ни на что не указывает. Таким образом, пытаясь получить сертификаты с помощью certbot sudo certbot certonly --standalone --preferred-challenges http -d mydomain.dev
дает мне:
http://mydomain.dev/.well-known/acme-challenge/ko3tofGIoo93e-VFPX9CB__CqcNp1ZPazcQR1G5LsGE: Тайм-аут во время подключения (вероятно, проблема с брандмауэром). Чтобы исправить эти ошибки, убедитесь, что ваше доменное имя было введено правильно и что записи DNS A / AAAA для этого домена содержат правильный IP-адрес.
Хорошо. Итак, мой первый вопрос, чтобы понять это: куда мне указать свою A-запись? Я попытался указать его на свой собственный IP-адрес и на свой экземпляр EC2, который является сервером Ubuntu.
Но на этом сервере на данный момент тоже ничего не запущено. Мне кажется, что это не работает. Возможно ли вообще то, что я пытаюсь сделать?
Когда это сработает, у меня возникнет еще одно сомнение по поводу nginx в контейнере докеров ... Как только я получу эти сертификаты, помещу их в свою конфигурацию и разверну на моем экземпляре EC2, как мой домен будет взаимодействовать с ним? Контейнер nginx такой же, как если бы он был установлен на сервере? Извините, если эти вопросы слишком простые, но я не специалист по сетям, пытающийся понять, что происходит под капотом.
Я очень благодарен за любые объяснения, помощь или подсказки.
Если нужно:
Вот как должна выглядеть моя конфигурация nginx в конце:
services:
django:
build:
context: .
dockerfile: ./compose/production/django/Dockerfile
image: my_webiste_production_django
env_file:
- ./.envs/.production/.django
- ./.envs/.production/.postgres
command: /start
nginx:
image: nginx
restart: always
ulimits:
nproc: 65535
nofile:
soft: 49999
hard: 65535
volumes:
- /some/path/www/html:/usr/share/nginx/html
- /some/path/log:/var/log/nginx
- /some/path/compose/production/nginx/sites-enabled/sitefitnesshq.conf:/etc/nginx/conf.d/default.conf
- /etc/letsencrypt/live/mydomain.com/fullchain.pem:/etc/letsencrypt/live/mydomain.com/fullchain.pem
- /etc/letsencrypt/live/yourdomain.com/privkey.pem:/etc/letsencrypt/live/mydomain.com/privkey.pem
- /etc/letsencrypt/live/yourdomain.com/chain.pem:/etc/letsencrypt/live/mydomain.com/chain.pem
ports:
- "80:80"
- "443:443"
depends_on:
- django
deploy:
restart_policy:
condition: on-failure
delay: 5s
window: 60s