如何使用SPDY协议提供Django应用程序?

时间:2013-02-16 18:26:28

标签: django hosting spdy

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

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

2 个答案:

答案 0 :(得分:3)

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

另外,显然nginx对SPDY有一些draft module

答案 1 :(得分:1)

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

最新版本的Chrome和Firefox dropped support for SPDY v2。因此,您至少需要在服务器端支持SPDY3。 Nginx versions higher than 1.5.10支持协议的第3版。

Django主线安装

目前(截至2014年2月)Nginx> 1.5.10仅可从主线分支获得,而非稳定分支。在大多数Linux发行版中,最简单的方法是安装mainline packages provided by the nginx project

Nginx和Django配置

Django文档解释了如何运行Django with Nginx through fastcgi。在那里提供的配置可以作为起点。

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

  • 需要将listen配置选项修改为: 从listen 80;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:在chrome://net-internals/#spdy
    • 中查找有效的SPDY会话
    • Firefox:查看Firebug Network标签,查找X-Firefox-Spdy:"3.1"响应标题。