HTTP2.0 nginx部署

第一步,准备材料:

  • nginx1.9.5+版本,我使用的版本是1.10.2
http2.0在主流浏览器上面都必须是  http2 over TLS(传输层安全协议). 而http2的协商机制是需要在TLS协商完成,建立起来安全连接后完成协商的,所以需要通过TLS的扩展(ALPN)完成协商.而只有在openssl1.0.2+后才会支持ALPN.SO... 

具体的HTTP2的协商问题可以查看QUQU的这篇文章.[1]

  • 需要一个openssl/或者LibreSSL(如果你的机器上面的额openssl是1.0.2+版本的话应该没问题.否则需要单独一个openssl然后通过编译过程中指定来用这个新的.
    openssl1.0.2j
    Libressl2.5.0
TLS也同样意味着你需要证书来实现你的HTTPS化.
  • 需要给你的域名申请证书.可以在这里申请.
    申请验证通过后需要再合并certificate.crt和ca_bundle.crt.
    cat a b >c. 注意打开看一下  ,注意先后顺序.里面有个折行的地方需要手动改一下.

开始部署

搞个文件,写一下nginx需要的各种配置,下面是我的配置文件.因为默认目录装着老版本的nginx.所以重新改了目录.

--prefix=/etc/nginx110 \
--conf-path=/etc/nginx110/nginx.conf \
--error-log-path=/var/log/nginx110/error.log \
--http-log-path=/var/log/nginx110/access.log \
--http-proxy-temp-path=/var/lib/nginx/proxy \
--http-scgi-temp-path=/var/lib/nginx/scgi \
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
--http-client-body-temp-path=/var/lib/nginx/clientbody \
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
--lock-path=/var/lock/nginx110.lock \
--pid-path=/var/run/nginx110.pid \
--with-pcre \
--with-openssl=../libressl \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_dav_module \
--with-http_stub_status_module \

PS:如果少什么东西,就自己装一下,教程基本网上都有.

PCRE安装  $ sudo apt-get install libpcre3 libpcre3-dev

然后就是MAKE的过程了  慢慢等就好.应该不会很久.

$ sudo ./configure 把那坨配置贴在这里

$ sudo make && make install

第三部,配置你的主机

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                     '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    tcp_nopush     on;

    keepalive_timeout  65;

    gzip  on;
    include /etc/nginx110/vhosts/*.online;

}

然后搞一个server出来  ,放在vhosts下面.就可以了

server {
        listen       443 ssl http2;
        server_name  node.ohweb.cn;
	ssl_certificate      合并后的证书cert.pem; 
        ssl_certificate_key  你证书的KEY .cert.key;
	gzip on;
        access_log  logs/access.log  main;


        error_page  404              /404.html;

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

然后启动.访问.其余的事情就不再写了.先到这里.


https://imququ.com/post/protocol-negotiation-in-http2.html ↩︎

Show Comments
备案信息: 京ICP备20002019号