通过 SPDY [1] 协议为 Django 应用程序提供服务的最佳方式是什么?
2 回答
一种方法是使用 Jetty 在 Jython 上运行 Django - http://www.evonove.it/blog/en/2012/12/28/django-jetty-spdy-blazing-fast/
此外,显然 nginx 有一些用于 SPDY 的草稿模块
它适用于 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;
tolisten 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"
响应标头。
- Chrome:在中查找活动的 SPDY 会话