【问题标题】:Running django application via SSH on Windows在 Windows 上通过 SSH 运行 django 应用程序
【发布时间】:2022-07-08 02:55:26
【问题描述】:

这个问题与 testdriven.io 系列文章有关如何构建和部署您的 Django 应用程序。详细地说,我的问题与三篇文章中的第二篇有关。当我们使用 nginx 和 gunicorn 在本地构建应用程序时,一切正常。然后,他使用 linux 命令ssh user@your-ip-or-domain 连接到主机,我认为这可能是他建议使用 freenom.com 创建的域的名称。

现在,我在一台 Windows 机器上,不知道如何执行这个他没有解释的操作(我们应该将项目复制到带有 linux 的虚拟机上吗?你应该使用 docker 运行 linux 的映像吗?)。

我所指的文章是 “运行容器” 段落中的 this。我正在寻找对该阶段的更深入的解释。 非常感谢。

【问题讨论】:

  • 您的问题是如何在 Windows 中使用 ssh?请更清楚
  • 该问题与作者跳过的所有步骤有关:设置免费域,将域与本地或云服务器的名称服务器和 dns 连接。将项目迁移到服务器并 docker up django 应用程序。

标签: django linux docker ssh


【解决方案1】:

作者在你提到的文章Prerequisites section中列举了应用的不同需求:

要学习本教程,您需要:

  • 一个域名
  • 安装了 Docker 和 Docker Compose 的正在运行的 Linux 虚拟机 您的应用程序将部署在哪里(AWS EC2、Google Compute Engine、Digital Ocean、Linode 都是可行的选择)

需要一个便宜的域名来练习吗?一些域名注册商已经 '.xyz' 域名的特价商品。或者,您可以创建一个免费域 在 Freenom。

总而言之,您首先需要一台可以运行容器的机器。

这台机器应该可以访问互联网,以允许我们加密和相关的机器人处理您的 SSL 证书。

事实上,您可以使用 Windows 或 Linux 机器,但为了简单起见,与 Docker 深度集成和许可目的,免费的 Linux 版本(例如 Ubuntu 或 Debian)应该更合适。

这台机器可以托管在您认为合适的地方。如今,正如文章中所建议的那样,您可以在任何不同的公共云提供商、AWS、GCP 或 Azure 中轻松启动这样的机器。

在这台机器上应该已经安装了docker。

假设您使用的是 Ubuntu,例如,您可以按照 this excellent guide 安装 docker 软件。

你还需要安装docker-compose

这实际上与您遇到的另一个问题有关,即您如何连接到这台 Linux 机器。

首先,这实际上取决于您用于启动实例的提供程序。

您可能需要配置某种防火墙软件,以允许您的 Django Web 应用程序通过 SSH、端口 22 和 HTTP/S、端口 80 和 443 连接到机器。请注意这里,至少乍一看,将可以连接到实例的 IP 地址限制为您自己的 IP 地址,这对于 SSH 端口尤其重要。

假设您有连接,您需要一个可以通过 SSH 与这台机器通信的客户端。

在 Windows 中,您很可能会使用 Putty

网络上有很多关于 Putty 及其使用方法的教程:例如 this one

使用提供的命令连接到机器:

ssh user@your-ip-or-domain

并安装所需的软件。

之后,按照文章中的说明,上传软件(可以使用WinSCP来执行此步骤):

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

并运行容器:

cd /path/to/django-on-docker
docker-compose -f docker-compose.staging.yml up -d --build

现在,要使用 let's encrypt,你需要为这台机器分配一个 DNS 记录,它可以验证:相反,你可能无法使用 SSL。

可以通过不同的方式分配此 DNS:您只需要机器的 IP 地址和一些 DNS 提供商。其中有很多,例如 AWS Route 53、GCP DNS 或 Azure DNS、GoDaddy 等(例如,请参阅 this)。我从未使用过该服务,但您可能可以使用 Freenom 以及文章中的建议。

配置完成后,作为 nginx 伴侣安装的 certbot 将使其工作并颁发必要的证书。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-18
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    • 1970-01-01
    相关资源
    最近更新 更多