目录

    本文主要介绍了在Linux上如何通过编译安装Nginx,并开启htttp2,还对使用http1.1和http2.0协议的访问本站的速度进行了比较。

    1. 编译安装 Nginx

    首先需要下载Nginx和它的几个依赖包。Zlib,Web请求传输时对数据进行压缩,节省带宽;PCRE,正则匹配URL进行路由分发;OpenSSLLibreSSL,安全套接字算法库,提供https支持。下面都使用最新的版本:

    wget http://nginx.org/download/nginx-1.11.1.tar.gz 
    
    wget http://zlib.net/zlib-1.2.8.tar.gz 
    
    wget http://ncu.dl.sourceforge.net/project/pcre/pcre/8.30/pcre-8.30.tar.gz 
    
    wget http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.4.1.tar.gz
    
    gunzip \*.gz 
    
    tar xvf nginx-1.11.1.tar zlib-1.2.8.tar   pcre-8.30.tar libressl-2.4.1.tar
    

    配置时,至少需要启用 http_v2_module 和 http_ssl_module 这两个模块:

    cd nginx-1.11.1
    ./configure --with-openssl=../libressl-2.4.1 --with-pcre=../pcre-8.30   --with-zlib=../zlib-1.2.8  --with-http_v2_module --with-http_ssl_module
    

    你会看到如下信息输出,里面有配置文件和log的路径。

    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”

    然后安装就可以了

    make
    make install
    

    Nginx默认安装在/usr/local/nginx,这时可以通过命令查看一下Nginx的版本。

    /usr/local/nginx/sbin/nginx  -v
    

    你会看到如下信息输出。

    nginx version: nginx/1.11.1

    这时还不能通过service nginx start/stop/restart管理Nginx状态。需要注册系统服务,这里直接将原来的Nginx替换为刚才编译的版本。

    service nginx stop
    mv /usr/sbin/nginx /usr/sbin/nginx_bk 
    ln -s   /usr/local/nginx/sbin/nginx   /usr/sbin/nginx
    

    2. 配置 Nginx

    注意:使用http2必须是https链接。根据自己的服务需求,配置好/usr/local/nginx/conf/nginx.conf文件,开启http2非常的简单,只需要将原来的 listen 443 ssl 替换为listen 443 ssl http2 ,启动nginx即可。

    service nginx 
    

    3. 测试

    下面是没有开启HTTP/2访问本站

    下面是开启HTTP/2访问本站

    速度有提升。