如何部署airbnb知识提要

时间:2018-01-17 14:05:30

标签: python r heroku web-deployment gunicorn

我一直在本地主机上使用airbnbs knowledge repo。问题是我的网络开发经验很少,所以我对如何在网上运行这一点非常不知所措,最好是在受密码保护的网站上运行。

到目前为止,我只使用runserver来查看知识Feed。我现在想部署。对我来说,部署它并不重要。它可以是自定义域名,或heroku,或其他任何东西。我对如何部署感到有点迷失。从阅读文档到目前为止。

knowledge_repo --repo app/ deploy

由此我得到以下内容:

INFO:knowledge_repo.repositories.gitrepository:Fetching updates to the knowledge repository...
INFO:alembic.runtime.migration:Context impl SQLiteImpl.
INFO:alembic.runtime.migration:Will assume non-transactional DDL.
[2018-01-09 19:33:58 -0500] [17729] [INFO] Starting gunicorn 19.7.1
[2018-01-09 19:33:58 -0500] [17729] [INFO] Listening at: http://0.0.0.0:7000 
[2018-01-09 19:33:58 -0500] [17729] [INFO] Using worker: sync
[2018-01-09 19:33:58 -0500] [17772] [INFO] Booting worker with pid: 17772
[2018-01-09 19:33:58 -0500] [17775] [INFO] Booting worker with pid: 17775
[2018-01-09 19:33:58 -0500] [17778] [INFO] Booting worker with pid: 17778
[2018-01-09 19:33:58 -0500] [17781] [INFO] Booting worker with pid: 17781

这显然只能在http://0.0.0.0:7000的计算机上查看。

如何将此部署到网络上?

1 个答案:

答案 0 :(得分:2)

考虑使用某种云托管服务,例如Amazon AWS。 注册后,您可以创建一个简单的EC2实例,它实际上是在AWS的数据中心上运行的虚拟服务器。

然后,您可以通过SSH连接到您的虚拟服务器(也称为EC2实例),并按照您在上面的计算机上安装知识库的方式安装知识库。

该站点应该在您选择运行Web应用程序的端口上的实例公共DNS名称下可用(在示例中为7000)。

关于控制对服务器的访问,您应该考虑使用安全组,这可以限制哪些IP地址可以访问给定端口上的EC2实例。

如果您是唯一访问它的人,只需在Web应用程序端口(即7000)上使用您自己的公共IP地址。

网上有很多文档,这里有一些初学者。

Getting started with EC2 instances

Gettings started with EC2 Security Groups

请注意使用AWS并非免费,但是您可以长期使用免费套餐而不会产生费用。 我相信一些t2类实例包含在免费套餐中。看到 Free Tier

如果您没有大量的流量访问您的网站,您应该可以免费提供实例。

我写了上面的想法,这不会是一个会产生大量流量的生产级网站,而且我提供了更多的快速n'脏'做法。 如果您发现自己需要采用这种更具可扩展性,弹性和可部署性的方法,那么您可以开始研究亚马逊的其他产品,例如CloudFormation,Elastic Load Balancing,Route53等。