./manage.py带有https的运行服务器

时间:2018-08-29 13:13:40

标签: python django ssl nginx

./ manage.py运行服务器0.0.0.0:8000

我将以上行用作我从github(https://github.com/ribeiroit/boh-puppet)借来的代码的一部分,以运行暂挂安装程序。

到目前为止,在http上的效果很好,但在https上却不是。如何修改上面的行以合并https?我已经从Comodo获得了ssl证书,并更新了我的nginx conf.d文件,但是该网站不会显示在https中。有什么想法请开我的路。

谢谢

2 个答案:

答案 0 :(得分:4)

虽然cezar的建议django-extensions可以在带https的服务器上运行,但是runserverrunserver_plus都不能在生产环境中使用。

引用Django's documentation

  

请勿在生产设置中使用此服务器。它尚未经过安全审核或性能测试。 (这就是要保持的方式。我们的工作是制作Web框架,而不是Web服务器,因此,改进此服务器以使其能够处理生产环境不在Django的范围之内。)

引用django-extensions' documentation

  

警告:切勿在任何生产环境中使用此工具。甚至不进行快速问题检查。我对此不够强调。交互式调试器使您可以直接针对服务器评估python代码。您已被警告。

现在是的,django-extensions文档中的警告仅针对单个功能,即交互式控制台,如果将DEBUG设置为False,则从理论上讲不会公开。但这正是Patreon got hacked的方式,也可能是其他方式。为什么还要冒险呢?

相反,最好使用官方推荐的WSGI servers中的一种来部署您的应用程序,例如gunicornuWSGI

答案 1 :(得分:2)

为此,我使用了第三方应用程序django-extensions,它提供了一些不错的附加功能。

其中一个是RunServerPlus

然后您可以像这样启动服务器:

python manage.py runserver_plus --cert-file /path/to/your/certificate

并在浏览器中打开https://localhost:8000