CentOS 7配置nginx-1.13.10支持http/2和Server Push

0、确保openssl版本大于1.0.2

openssl version

1、下载nginx-1.13.10

wget http://nginx.org/download/nginx-1.13.10.tar.gz
tar zxf nginx-1.13.10.tar.gz
cd nginx-1.13.10

2、确认并安装gcc等编译组件

yum groupinstall "Development Tools" 
yum install pcre* openssl* gd-devel* zlib-devel pcre-devel libpcre3 libpcre3-dev zlib1g-dev unzip git

3、配置编译参数

./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module

配置正常输出如下内容:

Configuration summary
  + using system PCRE library
  + using system OpenSSL library
  + using system zlib library

  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx modules path: "/usr/local/nginx/modules"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

4、编译

make

5、安装

make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx

6、nginx配置参考(server配置段)

server {
        listen       443 ssl http2 default_server;
        server_name  _;
        root         /usr/local/nginx/html;

        ssl_certificate "/usr/local/nginx/conf/server.crt";
        ssl_certificate_key "/usr/local/nginx/conf/server.key";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;


        location /index.html {
            http2_push_preload on;
            http2_push /image.jpg;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

7、准备证书与密钥文件(server.crt/server.key)

8、检查并重启nginx

nginx -t
nginx -s reload

9、用chrome访问配置好的页面

并在chrome地址栏输入

chrome://net-internals/#http2

可以看到对应站点的http/2的session

【参考资料】

https://www.nginx.com/blog/nginx-1-13-9-http2-server-push/

原文地址:https://www.cnblogs.com/imzye/p/8638842.html