4

通过 SPDY [1] 协议为 Django 应用程序提供服务的最佳方式是什么?

[1] http://www.chromium.org/spdy

4

2 回答 2

3

一种方法是使用 Jetty 在 Jython 上运行 Django - http://www.evonove.it/blog/en/2012/12/28/django-jetty-spdy-blazing-fast/

此外,显然 nginx 有一些用于 SPDY 的草稿模块

于 2013-02-16T19:21:15.497 回答
1

它适用于 nginx > 1.5.10 和 Django 作为 fastcgi 服务器运行。

最近版本的 Chrome 和 Firefox放弃了对 SPDY v2的支持。因此,您至少需要服务器端的 SPDY3 支持。高于 1.5.10 的 Nginx 版本支持该协议的版本 3。

Django主线安装

目前(截至 2014 年 2 月)Nginx > 1.5.10 只能从主线分支获得,不能从稳定版获得。在大多数 Linux 发行版上,安装nginx 项目提供的主线包是最容易的。

Nginx 和 Django 配置

Django 文档解释了如何通过 fastcgi 使用 Nginx 运行 Django。那里提供的配置可以用作起点。

此外,您需要为您的主机提供 SSL 证书,并通过以下方式扩展 Nginx 配置:

  • 监听配置选项需要修改为: from listen 80;to listen 443 ssl spdy;

  • 您需要添加基本的 ssl 配置选项,最重要的是证书和密钥。

因此,结合这两种修改,配置可能如下所示:

server {
    listen       443 ssl spdy;
    server_name  yourhost.example.com;

    ssl_certificate      <yourhostscertificate>.pem;
    ssl_certificate_key  <yourhostskey>.key;
    ssl_prefer_server_ciphers   on;

    location / {
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:8080;
    }
}

然后以 fastcgi 模式运行 Django,如下所示:

python ./manage.py runfcgi host=127.0.0.1 port=8080

测试您的设置

  • 将浏览器指向https://yourhost.example.com
  • 您应该能够验证连接是通过 SPDY 完成的:
    • Chrome:在中查找活动的 SPDY 会话chrome://net-internals/#spdy
    • Firefox:检查 Firebug Network 选项卡并查找X-Firefox-Spdy:"3.1"响应标头。
于 2014-02-22T18:27:01.330 回答