SSL & SPDY

2015-11-13 更新:本文内容已经过时,并且部分配置可能有潜在的问题,不建议使用,仅供参考。

2014-04-09 更新:升级openssl版本(1.0.1f)、nginx版本,避免heartbleed攻击。

博客启用了强制https访问,来自非搜索引擎的朋友都会被自动跳转到https下。除了传输数据更安全之外,也是为了能够启用SPDY。

说到SPDY还真是蛮头疼,因为用的是nginx,不像apache那样直接有SPDY插件。上网查了下,了解到nginx 1.4.X及以上的版本自带了SPDY/2,然后就去升级nginx了。升级完,写完配置文件,在我重启的时候,突然给我来这么一句

nginx: [warn] nginx was built without OpenSSL NPN support, SPDY is not enabled for 0.0.0.0:443 in …..

似乎是启用SPDY失败了,然后在浏览器中测试,虽然网站可以访问,但并没有启用SPDY。接着就去搜原因,发现竟然是openssl的版本过旧了。旧就升级呗~网上找了些教程去升级,可升级好了再次启动nginx,依然提示这个错误。当时就陷入了迷茫,搞不懂哪里出错了,又查了几遍问题,依然找不到原因,最后只好恢复配置文件放弃了。

第二天(昨天),因为coxxs.me也要启用SSL,又一次在网上查资料,也顺便查了下SPDY,突然发现了这篇文章,看了一下顿悟了,可能是nginx没有配置到最新版的openssl,用的还是旧版,于是稍微修改了下代码,照着他的操作,以下是我的大致流程:

#下载并编译openssl(不安装)
cd /root/
wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
tar xfz openssl-1.0.1g.tar.gz
cd openssl-1.0.1g
./config
make
#接着结束nginx进程,把/usr/local/nginx重名为nginx_old
cd /root/
wget http://nginx.org/download/nginx-1.5.13.tar.gz
tar xfz nginx-1.5.13.tar.gz
cd nginx-1.5.13
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-http_spdy_module --with-openssl=/root/openssl-1.0.1g
make
make install
#安装完成后,删除/usr/local/nginx/conf,将/usr/local/nginx_old/conf复制到/usr/local/nginx/conf,重启服务器即可

在nginx相应的.conf里面配置了之后,SSL & SPDY就成功开启了。用Chrome(或开启了SPDY的浏览器)访问本站,是不是快很多了呢?

SSL & SPDY》有16个想法

          1. 0 0我是用UA判断的,应该没问题吧。

          2. UA 判断总是不全的,你无法把全部搜索引擎UA都写上。我不喜欢有遗漏的判断。

    1. =。=欢迎你模仿这个风格!嗯,就是wp默认的,哈哈哈哈

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注