• {{ item.name }}
  • Home
  • Linux
  • Programming
    • Python
  • Life
  • Other
  • Tools
  • 投资者该如何参与优秀的区块链项目- NuLink社区圆桌会议
  • 什么是NuLink?- 项目中文社区与项目研究组成员 Rookie 对话实录
  • NuLink 融资 400 万美元用于开发隐私保护技术
  • NuLink的零知识证明介绍(1)
  • 用bitwarden_rs搭建属于自己的密码管理器
  • 修复 CentOS vps 网卡失效
  • 记录用mac给Nexus6P刷Android10的错误
  • Centos 6.8启用 TCP BBR拥塞控制算法
  • Nginx 启用HTTP2功能
  • Mac 安装adb工具
  • WordPress 默认编辑器代码按钮

Nginx 启用HTTP2功能

  • iansiu
  • 2016-12-25
  • 0

首先说明,Nginx需要1.9.5版本以上,OpenSSL至少需要OpenSSL 1.0.2版本。

下面升级开始升级

1. 下载解压 openssl-1.0.2h

wget https://www.openssl.org/source/openssl-1.0.2h.tar.gz
tar xf openssl-1.0.2h.tar.gz

2. 下载解压 Nginx 1.10.0

http://nginx.org/download/nginx-1.10.0.tar.gz
tar xf nginx-1.10.0.tar.gz
cd nginx-1.10.0

升级先备份之前的Nginx

mv /usr/local/nginx /usr/local/nginx_back

接下来就可以升级Nginx了

./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_realip_module --with-pcre --with-http_v2_module --with-http_gunzip_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.0.2h

注意oepnssl源码的路径以及必须启动http_v2和ssl模块,现阶段http2只支持https加密的网站

3. 配置 Nginx

把以前老版本Nginx中conf目录的下的nginx.conf拷贝到新安装的Nginx中的conf目录下,同时如果有vhosts目录的话也拷贝过去。

重点是vhosts中的.conf文件

内容如下:

server

{

        listen 80;
        server_name laowang.me www.laowang.me;

        if ($host != 'laowang.me') {
            rewrite ^/(.*)$ https://laowang.me/$1 permanent;
        }

        rewrite /^(.*) https://$server_name/$1 permanent;
        index index.html index.htm index.php;
        root /wangzhangenmulu;

        access_log logs/laowang.log man;
        error_log logs/laowang_err.log;

        error_page 404 /404/index.php;

        listen 443 ssl http2;
        ssl on;
        ssl_certificate /etc/fullchain.pem;
        ssl_certificate_key /etc/privkey.pem;

        ssl_ciphers 'AES128+EECDH:AES128+EDH:!aNULL';

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_session_cache shared:SSL:10m;

        ssl_stapling on;
        ssl_stapling_verify on;
        resolver 8.8.8.8 8.8.4.4 valid=300s;
        resolver_timeout 5s;

        ssl_prefer_server_ciphers on;
        ssl_dhparam /etc/ssl/certs/dhparam.pem;

        add_header Strict-Transport-Security max-age=63072000;
        add_header X-Frame-Options DENY;
        add_header X-Content-Type-Options nosniff;

        if ($scheme = http) {
                return 301 https://$server_name$request_uri;
         }

以上只是贴出了最重要的一段,至于网站源码存放路径和ssl证书存放路径都需要更改为相应的内容。

ssl证书可以用:Let's Encrypt 免费的

4. 测试HTTP2

chrome可以在地址栏输入:chrome://net-internals/选择HTTP/2 看 Negotiated Protocol 是不是h2
chrome开发者工具也可以看
还有这个网站:https://tools.keycdn.com/http2-test

以及测试服务器安全程度:https://www.ssllabs.com/ 应该是A+的水准。

© 2023 laowang's blog
Theme by Wing