如何使用SPDY协议为Django应用提供服务?

4

这个问题的附加内容 - 使其适用于CPython - dmg
有没有一种方法可以通过结合 mod_wsgimod_spdy 在 Apache 中实现它? - drott
1
目前为止,我认为没有。至少在阅读了很多关于这两个东西的内容之后,我没有发现。虽然有一些将其转换为HTTP的方式,但我不确定能从中获得什么。 - dmg
2个回答

3

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运行Django与Nginx。提供的配置可以用作起点。

另外,您需要为您的主机获取SSL证书,并按以下方式扩展Nginx配置:

  • 修改监听配置选项: 从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网络选项卡,并查找X-Firefox-Spdy:"3.1"响应头。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接