Django的最佳部署配置是什么?

时间:2011-12-12 06:00:47

标签: django optimization django-cache

我将在服务器上部署我的django项目。为此,我计划进行以下优化。

  • 我想知道的是我错过了什么?
  • 我怎样才能更好地做到这一点?

前端:

  1. Django-static(用于压缩静态媒体)
  2. 从CDN运行jquery
  3. 标题的缓存控制
  4. 为Django db索引(对于某些型号)
  5. 服务器端:

    1. uswginginx
    2. Memcached(对于某些查询)
    3. 将媒体和数据库放在不同的服务器上

2 个答案:

答案 0 :(得分:1)

如果您需要支持异步和安装,可以选择安装Celery。期间任务。如果这样做,请考虑安装Redis而不是Memcached。使用Redis,您可以管理会话并执行Celery操作以及执行缓存。

请看这里:http://unfoldthat.com/2011/09/14/try-redis-instead.html

答案 1 :(得分:1)

这些是我定期使用的一些优化:

前端:

  1. 使用js加载库,例如labjsrequirejsyepnope。您仍然应该压缩/合并您的js文件,但在大多数用例中,最好对多个js文件发出多个请求并并行运行它们,以便在每个页面上运行1个巨大的js文件。我总是把它们拆分成有意义的平衡请求和平衡负载。有些还允许条件加载和故障转移(即如果由于某种原因,你的cdn'd jquery不再存在)

  2. 在可能的位置使用精灵。

  3. 后端:

    1. 配置django-compressor(django-static很好)
    2. 在nginx中启用gzip压缩。
    3. 如果您使用的是postgresql(推荐的sql数据库),请使用pgbouncer或pgpool2之类的内容。
    4. 使用和配置缓存(我使用redis)
    5. (已经提到 - 使用芹菜可能需要更长的时间)
    6. 小型数据库工作:在需要的地方使用索引,查找过多的查询(在不使用select_related的情况下常见)或查询速度慢(在数据库中启用日志慢查询)。始终使用select_related with arguments。
    7. 如果实施搜索,我总是使用独立的搜索引擎。 (elasticsearch / SOLR)是
    8. 现在来分析应用程序并寻找代码特定的改进。保留eye on
    9. 的一些事情