首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows上通过SSH运行django应用程序

在Windows上通过SSH运行django应用程序
EN

Stack Overflow用户
提问于 2022-07-05 16:50:48
回答 1查看 298关注 0票数 5

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

现在,我在Windows机器上,不知道如何执行他没有解释的操作(我们应该用linux在virtualbox上复制项目吗?您应该使用docker运行linux映像吗?)。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-07 18:55:26

在本文的先决条件部分中,作者列举了对应用程序的不同要求:

要遵循本教程,您需要:

  • 安装有Docker和Docker组合的运行中的Linux虚拟机,您的应用程序将在其中部署(AWS EC2、、Digital、Linode都是可行的选择)
  • 域名

需要一个廉价的领域来练习吗?有几个域名注册人对“.xyz”域名有特殊要求。或者,您可以在Freenom创建一个免费域。

我更改了列表中元素的顺序,以反映需求的实际顺序。

您首先需要的是可以在其中运行应用程序的机器。

这台机器可以托管在您认为合适的任何地方,如您自己的数据中心,或者正如本文中所建议的那样,您现在可以很容易地在云中提供一台机器,例如,在任何不同的公共云提供商中,AWS、GCP或Azure等等。

这台机器的要求如下:

  • 这台机器应该可以通过互联网访问,除其他外,用于创建DNS条目,并允许我们加密和相关的bot来处理SSL证书。
  • 您可以使用Windows或Linux机器,尽管为了简单、与Docker的紧密集成以及许可(特别是用于测试目的),免费的Linux版本,例如Ubuntu或Debian,应该更合适。
  • 在这台机器中,应该已经安装了对接和对接组合。

例如,假设您正在使用Ubuntu,您可以遵循例如这位优秀的导游来安装docker软件。

您还需要安装码头工

但是,如何从Windows机器连接到linux实例来执行这些操作,然后运行您的应用程序?

在Linux中,您通常会为此目的使用SSH

在基于Linux或Unix的系统中,SSH支持是开箱即用的;在Windows中,您很可能需要使用油灰

网络上有很多关于Putty和如何使用它的教程:比如这一个

在Linux中,您可以使用终端连接到计算机,并输入以下内容:

代码语言:javascript
复制
ssh user@your-ip-or-domain

Putty将为您提供执行类似连接所需的所有内容:只需定义计算机的公共IP地址、用户名和密码(或者可以使用SSH密钥对机器进行身份验证)。

此用户名和密码通常由计算机的提供程序在计算机设置过程中提供。

为了实现这一点,您可能需要在托管提供商中配置某种防火墙软件,以便允许连接到SSH、端口22和HTTP/S、端口80和443以及Django web应用程序的计算机。请在这里小心,至少乍一看,将可以连接到实例的IP地址限制在您自己的IP地址上,这对于SSH端口特别重要。

然后,我将执行DNS设置。

DNS基本上允许您为您的机器IP地址提供一个可识别的别名。

此外,为了方便按名称访问站点,您需要向计算机分配DNS记录,以便使用“让我们加密”,因为在颁发站点SSL证书时,需要将该信息作为验证步骤。

此DNS可以以不同的方式分配:您只需要计算机的IP地址和某些DNS提供程序。

其中有很多,例如AWS路由53、GCP或Azure DNS、GoDaddy等(例如,请参见 )。

我从未使用过该服务,但您可能也可以为此目的使用本文中所建议的Freenom。

一旦配置完毕,作为nginx服务器配套安装的Certbot将使其工作并颁发必要的证书。

然后,如本文所述,将应用程序软件上传到计算机。

在Linux中,为此目的使用SCP是正常的。

同样,如果您将Linux或Unix作为客户端运行,则将提供该协议:

代码语言:javascript
复制
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

运行Windows时,可以使用WinSCP执行此步骤。

要完成该操作,请再次使用Putty和SSH连接到机器,并按照本文中解释的那样运行您的容器:

代码语言:javascript
复制
cd /path/to/django-on-docker
docker-compose -f docker-compose.staging.yml up -d --build
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72873007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档