Использование пользовательского домена для страницы django через traefik
у меня есть мой первый пользовательский домен (через godaddy)
ive подключил его к cloudflare.
я хочу подключиться к нему с помощью traefik.
У меня есть веб-страница django, которая отлично работает на порту 8000, поэтому я переключил ее на 80 (потому что это то, что я думаю, что мне нужно для traefik, чтобы увидеть его) и ничего не получилось. попытка подключиться к моему пользовательскому домену просто зависает и порт дает мне 404 ошибку.
приборная панельtraefik выглядит нормально, как и мои записи на cloudflare (насколько я могу судить, я никогда этого не делал)
я надеялся, что кто-нибудь сможет помочь мне подключиться к моей странице django через мой пользовательский домен. есть ли что-нибудь, что я сделал в доказательствах, приведенных ниже, что выглядит неправильно? есть ли что-нибудь еще, что вам нужно увидеть?
мой docker-compose.yml находится ниже
version: "3.3"
services:
traefik:
image: "traefik:v2.9"
container_name: "traefik"
command:
#- "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
ports:
- "80:80"
- "8080:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
frontend:
build: frontend
image: frontend
container_name: frontend
# ports:
# - 8000:8000
labels:
- "traefik.enable=true"
- "traefik.http.routers.whoami.rule=Host(`tgmjack.com`)"
- "traefik.http.routers.whoami.entrypoints=web"
Ниже приведена коллекция скриншотов, демонстрирующих каждую вещь.
есть ли у вас какие-либо советы или вопросы?
В некоторых руководствах, которые я видел, используется ключ API, нужен ли мне ключ API?
Некоторые соображения:
- Указывание GoDaddy игнорируется, если вы используете Cloudflare для DNS, поэтому мы рассматриваем только Cloudflare.
- На CloudFlare вам нужно удалить тот случайный ip, который вы нашли в качестве записи A.
- Вам не нужно менять порт вашего контейнера с 8000 на 80, вам придется управлять с помощью "ingress" или иначе веб-сервера (nginx, например) проксипасом к localhost:8000.
- Traefik, вероятно, уже имеет "ingress", используемый для подтверждения сертификата, вот почему он возвращает вам ошибку на ".well-known/acme-challenge". Этот файл используется для определения фактического владельца домена, что необходимо для генерации действительного SSL/TLS сертификата. Для этого вам нужно убедиться, что при вызове вашего сервера по адресу localhost:8000/.wellknow/acme-challenge он возвращает файл с уникальным ключом. Вы, конечно, найдете эту информацию на Traefik (https://doc.traefik.io/traefik/https/acme/) это ссылка на учебник. .
Я рекомендую вам начать проверку правильности конфигурации таргетинга CloudFlare с удаления всего, что вам не нужно.
Надеюсь, я был вам полезен!