Nginx:Debian/Ubuntu Linux上的SPDY SSL安装和配置
时间:2020-01-09 10:38:04 来源:igfitidea点击:
Google Chrome/Chromium,Firefox和Opera浏览器支持SPDY网络协议。
它可以在受支持的站点上更快地浏览。
SPDY与HTTP相似,其特定目标是减少网页加载延迟并提高Web安全性。
SPDY通过压缩,多路复用和优先级排序来减少延迟。
如何启用在Debian或Ubuntu Linux服务器上运行的Nginx SPDY支持?
SPDY(发音为快速)是一种主要由Google开发的开放式网络协议,用于传输Web内容。
Nginx版本1.4.x +开箱即用支持SPDY。
您需要1.0.1或更高版本的openssl才能编译和使用nginx。
必备软件
- Openssl和Openssl开发(libssl)的库版本为1.0.1+。请注意,CentOS/RHEL v6.x.x仅带有OpenSSL版本1.0.0。为了在同一端口上同时接受HTTPS和SPDY连接,这是必需的。所使用的OpenSSL库应支持"下一协议协商TLS"扩展,此扩展自OpenSSL版本1.0.1起可用。如果您使用的是RHEL/CentOS 6.x或更早版本,则需要安装OpenSSL v1.0.1。
最新版本的RHEL/CentOS 6.5带有OpenSSL 1.0.1e-fips
,即您可以在CentOS/RHEL 6.5版上编译nginx。有关更多信息,请参见本指南。 - GNU C编译器和构建工具。
- Libpcre版本3和
libpcre3-dev
。 - 最新稳定的nginx版本1.4.x。
- 以下"网络浏览器"之一:
- Google Chrome或Chromium(跨平台)
- Mozilla Firefox(跨平台)Opera(跨平台)
- Opera(跨平台)
请注意,IE或Safari都不支持SPDY。
安装所需的软件
打开终端和/或使用ssh客户端登录,输入:
$ sudo apt-get install libssl-dev libpcre3 libpcre3-dev
在Debian或Ubuntu Linux上安装编译器和构建工具:
$ sudo apt-get install build-essential
验证版本
执行以下命令:
gcc --version make --version openssl version
查找并删除nginx-full和nginx-common的1.1.19版软件包
要删除nginx-full和nginx-comman,请输入:
## backup config files, just in case ## sudo mkdir -p /root/old.nginx/etc_nginx/ sudo cp -avr /etc/nginx/* /root/old.nginx/etc_nginx/ ## delete it ## sudo apt-get remove nginx-full nginx-common
最后,安装nginx,输入:
$ sudo make install
输出示例:
make -f objs/Makefile install make[1]: Entering directory `/tmp/nginx-1.6.0' test -d '/etc/nginx' || mkdir -p '/etc/nginx' test -d '/usr/sbin' || mkdir -p '/usr/sbin' test ! -f '/usr/sbin/nginx' || mv '/usr/sbin/nginx' '/usr/sbin/nginx.old' cp objs/nginx '/usr/sbin/nginx' test -d '/etc/nginx' || mkdir -p '/etc/nginx' cp conf/koi-win '/etc/nginx' cp conf/koi-utf '/etc/nginx' cp conf/win-utf '/etc/nginx' test -f '/etc/nginx/mime.types' || cp conf/mime.types '/etc/nginx' cp conf/mime.types '/etc/nginx/mime.types.default' test -f '/etc/nginx/fastcgi_params' || cp conf/fastcgi_params '/etc/nginx' cp conf/fastcgi_params '/etc/nginx/fastcgi_params.default' test -f '/etc/nginx/fastcgi.conf' || cp conf/fastcgi.conf '/etc/nginx' cp conf/fastcgi.conf '/etc/nginx/fastcgi.conf.default' test -f '/etc/nginx/uwsgi_params' || cp conf/uwsgi_params '/etc/nginx' cp conf/uwsgi_params '/etc/nginx/uwsgi_params.default' test -f '/etc/nginx/scgi_params' || cp conf/scgi_params '/etc/nginx' cp conf/scgi_params '/etc/nginx/scgi_params.default' test -f '/etc/nginx/nginx.conf' || cp conf/nginx.conf '/etc/nginx/nginx.conf' cp conf/nginx.conf '/etc/nginx/nginx.conf.default' test -d '/var/run' || mkdir -p '/var/run' test -d '/var/log/nginx' || mkdir -p '/var/log/nginx' test -d '/etc/nginx/html' || cp -R html '/etc/nginx' test -d '/var/log/nginx' || mkdir -p '/var/log/nginx' make[1]: Leaving directory `/tmp/nginx-1.6.0'
Nginx SPDY配置
首先,您需要为Nginx生成并安装SSL证书。
有关更多信息,请参见如何使用nginx设置SSL反向代理/负载平衡SSL代理。
接下来,编辑nginx.conf
,输入:
$ sudo vi /usr/local/ngnix/conf/nginx.conf
或者
$ sudo vi /etc/nginx/nginx.conf
查找如下所示的行:
listen 192.54.1.1:443 ssl;
如下更新
listen 192.54.1.1:443 ssl spdy;
保存并关闭文件。
这是完整的文件:
server { ### server port and name ### listen 192.54.1.1:443 ssl spdy; server_name theitroad.com; ### SSL log files ### access_log logs/ssl-access.log; error_log logs/ssl-error.log; ### SSL cert files ### ssl_certificate ssl/theitroad.com.crt; ssl_certificate_key ssl/theitroad.com.key; ### Add SSL specific settings here ### ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers RC4:HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; keepalive_timeout 60; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ### We want full access to SSL via backend ### location / { proxy_pass http://theitroad; ### force timeouts if one of backend is died ## proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; ### Set headers #### proxy_set_header Accept-Encoding ""; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; ### Most PHP, Python, Rails, Java App can use this header ### #proxy_set_header X-Forwarded-Proto https;## #This is better## proxy_set_header X-Forwarded-Proto $scheme; add_header Front-End-Https on; ## Let the browser know about spdy ## add_header Alternate-Protocol 443:npn-spdy/2; ### By default we don't want to redirect it #### proxy_redirect off; }
最后,重新加载nginx服务器,输入:
$ sudo /usr/sbin/nginx -s reload
我如何测试spdy是否正常工作?
- Firefox用户尝试使用浏览器SPDY指示器插件。
- Google Chrome或Chromium用户,请尝试使用浏览器SPDY指示器插件。
另外,Chrome浏览器或Chromium用户也可以在地址栏中输入以下内容:
chrome://net-internals/#spdy