Blo*_*ell 3 linux django ssh docker
这个问题与 testdriven.io 系列有关如何构建和部署 Django 应用程序的文章相关。详细来说,我的问题与三篇文章中的第二篇相关。当我们使用 nginx 和 Gunicorn 在本地构建应用程序时,一切正常。然后,他使用 linux 命令连接到主机,我认为这可能是他建议使用freenom.comssh user@your-ip-or-domain创建的域的名称。
现在,我在一台 Windows 机器上,不知道如何执行他没有解释的这个操作(我们应该在带有 linux 的 virtualbox 上复制该项目吗?你应该用 docker 运行 linux 的映像吗?)。
我指的文章是“运行容器”段落中的这篇文章。我正在寻找对该阶段的更深入的解释。多谢。
作者在您提到的文章的先决条件部分中列举了该应用程序的不同要求:
要遵循本教程,您将需要:
- 安装了 Docker 和 Docker Compose 的正在运行的 Linux 虚拟机,您的应用程序将在其中部署(AWS EC2、Google Compute Engine、Digital Ocean、Linode 都是可行的选择)
- 一个域名
需要一个便宜的域名来练习吗?一些域名注册商对“.xyz”域名有特价优惠。或者,您可以在 Freenom 创建免费域名。
我更改了列表中元素的顺序,以反映需求的实际顺序。
您首先需要的是一台可以运行应用程序的机器。
该机器可以托管在您认为合适的任何地方,本地,您自己的数据中心,或者正如本文中所建议的那样,现在您可以在云中非常轻松地配置机器,例如,在任何不同的公共云中提供商、AWS、GCP 或 Azure 等。
该机器的要求如下:
例如,假设您使用的是 Ubuntu,您可以按照这个优秀指南来安装 docker 软件。
您还需要安装docker-compose 。
但是,如何从 Windows 计算机连接到 Linux 实例来执行这些操作并稍后运行您的应用程序?
在 Linux 中,您通常会使用SSH来实现此目的。
在基于 Linux 或 Unix 的系统中,SSH 支持是开箱即用的;在 Windows 中,您很可能需要使用Putty。
网络上有大量有关 Putty 及其使用方法的教程:例如考虑一下这个。
在 Linux 中,您可以使用终端连接到您的计算机并键入以下内容:
ssh user@your-ip-or-domain
Run Code Online (Sandbox Code Playgroud)
Putty GUI 将为您提供执行类似连接所需的所有内容:只需定义计算机的公共 IP 地址、用户名和密码(或者您可以使用 SSH 密钥对计算机进行身份验证)。
此用户名和密码通常由您的计算机提供商在计算机设置过程中提供。
为了实现这一点,您可能需要在托管提供商中配置某种防火墙软件,以允许您的 Django Web 应用程序在端口 22 上通过 SSH 连接到计算机,在端口 80 和 443 上连接到 HTTP/S 。请注意,至少乍一看,将可以连接到实例的 IP 地址限制为您自己的 IP 地址,这对于 SSH 端口尤其重要。
然后,我将执行 DNS 设置。
DNS 基本上允许您为计算机 IP 地址提供可识别的别名。
除了方便按名称访问您的站点之外,您还需要向您的计算机分配 DNS 记录才能使用 Let's Encrypt,因为它在颁发站点 SSL 证书时需要该信息作为验证步骤。
该 DNS 可以通过不同的方式分配:您只需要计算机的 IP 地址和某个 DNS 提供商。
其中有很多,例如 AWS Route 53、GCP DNS 或 Azure DNS、GoDaddy 等(例如,请参阅此)。
我从未使用过该服务,但您可能也可以按照文章中的建议使用 Freenom 来实现此目的。
配置完成后,作为 nginx 服务器配套安装的 Certbot 将使其正常工作并颁发必要的证书。
之后,按照文章中的说明,将您的应用程序软件上传到您的计算机。
在 Linux 中,通常使用SCP来实现此目的。
同样,如果您运行 Linux 或 Unix 作为客户端,则协议是开箱即用的:
scp -r $(pwd)/{app,nginx,.env.staging,.env.staging.db,.env.staging.proxy-companion,docker-compose.staging.yml} user@your-ip-or-domain:/path/to/django-on-docker
Run Code Online (Sandbox Code Playgroud)
当运行 Windows 时,您可以使用WinSCP来执行此步骤。
最后,使用 Putty 和 SSH 再次连接到计算机,并使用 docker compose 运行容器,如本文中所述:
cd /path/to/django-on-docker
docker-compose -f docker-compose.staging.yml up -d --build
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
621 次 |
| 最近记录: |