让 Nginx SPDY 和 iOS 交朋友
SPDY 这个东西非常酷,昨晚和朋友聊着天突然提到这个东西,就决定给我家 Server 以及 iOS 和 Android 客户端都上一下这个高大上的技术。
Nginx
Nginx 从 1.5.10 开始实现了 draft 3 of SPDY 在 Ubuntu 上直接添加了 Nginx 官方的 development PPA 源,升级后(如果是编译安装的话,请编译时候加 --with-http_spdy_module)就可以支持 SPDY。
你可以通过 nginx -V 这个命令,来看下编译参数有没有 --with-http_spdy_module
配置上来说其实是很简单的,但是 iOS 有个问题,所以我们需要另外指定个端口,这里我选择了 4443 来做 SPDY 和iOS的传输。
server { #dedicated port for iOS aka CocoaSPDY listen 4443 spdy; #port for web browser listen 443 ssl spdy default_server; #say we support spdy v3 add_header Alternate-Protocol 443:npn-spdy/3; #compress header when spdy spdy_headers_comp 1; }
CocoaSPDY
其实这里就解决了最大的问题,SPDY 因为是传输二进制,所以本身就是加密的,iOS上我们因为有 Twitter 开源出来的 CocoaSPDY
根据介绍可以很轻松的使用起来
[SPDYURLConnectionProtocol registerOrigin:@"http://xxx.com:4443"];
记得要将全部 API 请求都使用 http://xxx.com:4443 这样就可走 SPDY 了。
昨晚因为配置 4443 端口的时候开了 ssl,所以一直没成功,今天 Kgen 跟我说不需要加 ssl,才恍然大悟,非常感谢。
Written with StackEdit.








