在django服务器上安装软件包的最佳实践

时间:2017-10-12 15:42:55

标签: python django nginx server

所以我自己设置服务器。现在我遇到了很多不同的方法来安装软件包。 我正在考虑像nginx,gunicorn,python3,postgresql等核心软件包。

我了解到设置VENV(虚拟环境)是件好事,所以我可以在包上运行不同版本的多个项目。

但它有点令人困惑,因为它们不会进入VENV。

有些人在VENV之外安装postgreSQL,但是psycopg2在里面。 VENV里面有些枪手。等等。

是否有更好的安全可行的最佳做法或规则?

有关信息。我正在使用Nginx,gunicorn设置一个Ubuntu服务器16.04。 PostgreSQL,psycopg2,python3

2 个答案:

答案 0 :(得分:1)

这是我用于我的应用程序,它正在工作,但也许有更好的选择。

  • Nginx,PostgreSQL,python3,作为系统包安装的主管
  • 对我在一台服务器内运行的每个应用程序使用virtualenv 我安装在那里:gunicorn,psycopg2和所有其他要求 对于Django项目(大部分时间都在里面列出 requirements.txt档案)
  • 使用主管操作gunicorn和Celery(需要时)

如果你想使一些服务器安装自动化你可以使用Ansible,它并不是那么复杂,并且与Python / Django的接口很好,有很多代码示例。但最好先开始自己做事情,了解并了解自己在做什么。

祝你好运

答案 1 :(得分:0)

@ Mounir的答案非常可靠 - 但我想在另一条建议上加以标记 - 使用Ansible Galaxy的剧本也是另一种选择。现有的剧本已经存在于许多用例(包括Django)中,并且它们考虑了许多这些最佳实践。我并不是说Galaxy上的所有剧本都很好 - 但有些是,并且由于是开源的,它们经常被修补和更新。