我最近决定将我的网站迁移到使用 docker 以及 django-cookiecutter 模板,目标是轻松部署和易于设置环境。
本地项目运行正常,可以通过虚拟机的ip地址8000端口访问网站。
但是当使用 production.yml 文件将其部署到 DO 时,它不会失败,构建和启动都运行成功。但是当我尝试访问 Droplet 的 ip 时,我得到了 404。我得到的唯一错误来自 traefik,与 SSL 相关,我不认为这是导致 404 的原因。
traefik_1 | time="2020-10-07T16:47:26Z" level=error msg="Unable to obtain ACME certificate for domains \"bgan.be,www.bgan.be\": unable to generate a certificate for the domains [bgan.be www.bgan.be]: error: one or more domains had a problem:\n[bgan.be] acme: error: 403 :: urn:ietf:params:acme:error:unauthorized :: Invalid response from http://bgan.be/.well-known/acme-challenge/4AvrIU9r8F3PwtyrK_6yq8fwHc4CgiHeT_4Vk5Yo0G4 [138.68.98.118]: \"<html>\\r\\n<head><title>404 Not Found</title></head>\\r\\n<body>\\r\\n<center><h1>404 Not Found</h1></center>\\r\\n<hr><center>nginx/1.18.0 (Ub\", url: \n[www.bgan.be] acme: error: 403 :: urn:ietf:params:acme:error:unauthorized :: Invalid response from http://www.bgan.be/.well-known/acme-challenge/gToGrbtaQN5SBFyArzNz8r1SQx8QSB2Wax3_CqzYXCk [138.68.98.118]: \"<html>\\r\\n<head><title>404 Not Found</title></head>\\r\\n<body>\\r\\n<center><h1>404 Not Found</h1></center>\\r\\n<hr><center>nginx/1.18.0 (Ub\", url: \n" providerName=letsencrypt.acme routerName=web-secure-router@file rule="Host(`bgan.be`) || Host(`www.bgan.be`)"
有人对为什么会发生这种情况有任何建议吗?我已经在这个问题上坚持了三天了,并尝试遵循一些教程并查看文档,但这让我很头疼。
.yml 文件保持不变,就像 cookiecutter 提供的那样。通常这应该是开箱即用的......
感谢您的帮助。
观看 Jim's Garage 的视频以获得一些指导 https://youtu.be/XH9XgiVM_z4?si=BfLiPFsJK4WM53Aw
我遇到了同样的问题,已经转到 docker 中的独立 traefik 实例来尝试将所有内容拼凑在一起。
仍然没有使用 production.yml 和自托管工作的空白 cookiecutter-django 模板...