0

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

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

前端:

  1. Django-static(用于压缩静态媒体)
  2. 从 CDN 运行 jquery
  3. 标头的缓存控制
  4. 索引 Django 数据库(对于某些模型)

服务器端:

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

2 回答 2

1

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

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

于 2011-12-12T09:00:14.813 回答
1

这些是我经常使用的一些优化:

前端:

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

  2. 尽可能使用精灵。

后端:

  1. 配置 django-compressor (django-static 很好)
  2. 在 nginx 中启用 gzip 压缩。
  3. 如果您使用的是 postgresql(这是推荐的 sql 数据库),请使用 pgbouncer 或 pgpool2 之类的东西。
  4. 使用和配置缓存(我用redis)
  5. (已经提到过——所有可能需要更长时间的东西都用芹菜)
  6. 小型数据库工作:在需要的地方使用索引,注意是否进行了过多的查询(在您应该不使用 select_related 的地方很常见)或慢速查询(在您的数据库中启用记录慢速查询)。始终将 select_related 与参数一起使用。
  7. 如果实现搜索,我总是使用独立的搜索引擎。(弹性搜索/solr)
  8. 现在来分析应用程序并寻找代码特定的改进。有些事情要留意
于 2011-12-12T21:06:54.540 回答