我一直在本地主机上使用airbnbs knowledge repo。问题是我几乎没有web开发经验,所以我对如何让它在网上运行,最好是在一个受密码保护的网站上运行非常一无所知。
到目前为止,我只使用runserver查看知识提要。我现在想要部署。它部署在哪里对我来说并不重要。它可以是一个自定义域名,或者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上可见。
如何使其可部署到web上?
发布于 2018-01-20 00:45:10
考虑使用某种云托管服务,如Amazon AWS。注册后,您可以创建一个简单的EC2实例,它本质上是一个在亚马逊网络服务数据中心上运行的虚拟服务器。
然后,您可以通过SSH连接到您的虚拟服务器(也称为EC2实例),并按照在上面的机器上安装的方式安装knowledge repo。
该站点应该在您选择用于运行web应用程序的端口(在本例中为7000)上的实例的公共DNS名称下可用。
关于控制对服务器的访问,您应该考虑使用安全组,它可以限制哪些IP地址可以在给定端口上访问您的EC2实例。
如果您是唯一要访问它的人,只需在web应用程序端口上使用您自己的公共IP地址(即7000)。
网上有很多关于这方面的文档,这里是一些入门级的。
Getting started with EC2 instances
Gettings started with EC2 Security Groups
请考虑使用AWS不是免费的,但是有一个免费的层级,您可以长时间使用,而不会产生费用。我相信一些t2类实例包含在空闲层中。请参阅Free Tier
如果你没有大量的流量访问你的站点,你应该可以使用免费提供的实例。
我写了上面的文章,认为这不会是一个会招致大量流量的生产级网站,我提供了更多的“快速和肮脏”的方法。如果您发现自己需要这种更具伸缩性、弹性和可部署的方法,您可以开始考虑亚马逊提供的其他产品,如CloudFormation、弹性负载平衡、Route53等。
https://stackoverflow.com/questions/48303022
复制相似问题