Debian/Ubuntu Linux上为Nginx安装和配置SPDY SSL

时间:2019-11-20 08:53:13  来源:igfitidea点击:

SPDY是一种主要由Google开发的开放式网络协议,用于传输Web内容。
Google Chrome/Chromium,Firefox和Opera浏览器支持SPDY网络协议。
它可以在受支持的站点上更快地浏览。 SPDY与HTTP相似,其特定目标是减少网页加载延迟并提高Web安全性。 SPDY通过压缩,多路复用和优先级排序来减少延迟。

如何启用在Debian或Ubuntu Linux服务器上运行的Nginx SPDY支持?

安装所需的软件

执行下面命令安装:

$ 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-comman,以便重新编译安装:
先备份配置文件,然后卸载nginx

sudo mkdir -p /root/old.nginx/etc_nginx/
sudo cp -avr /etc/nginx/* /root/old.nginx/etc_nginx/
 
sudo apt-get remove nginx-full nginx-common

编译安装nginx:

$ sudo make install

Nginx SPDY配置

为Nginx生成并安装SSL证书。

编辑nginx.conf

$ sudo vi /usr/local/ngnix/conf/nginx.conf

或者

$ sudo vi /etc/nginx/nginx.conf

将:

listen          202.54.1.1:443 ssl;

更改成

listen          202.54.1.1:443 ssl spdy;

配置示例:

server {
	### server port and name ###
        listen          202.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