Axton Yao
Always Dream. Always Explore.
无垠
新的个人页以及对 Nginx 启用 Brotli、TLS 1.3和 Server Push

趁着春节假期,作业一点没做,倒是抽空写了一个新的个人页。

Axton: About Me

到现在 axton.cc 这个域名的根域总算是启用了,之前一直在用二级域根域扔着没管。

个人页算是个假 shell,支持少数常用命令及历史命令和 Tab 补全。几乎所有操作都在前端完成,只有在获取博客最新文章时会和后台交互。用的是 WordPress 的 RESTful API,真的是一个超好玩的 API。CORS 靠反代解决,反代加了一层缓存减轻源站压力。

至于为啥不直接连后端而是去写1k+行的 js…

https://img.flyhigher.top/wp-content/uploads/2018/02/snipast4e.jpg

https://img.flyhigher.top/wp-content/uploads/2018/02/201708021736428973982.jpg

说到 WordPress,WordPress 最近被发现一个 Dos 漏洞,开发团队拒绝修复,于是自己补了一下。

然后突然 Nginx 1.13.9 就释出了,添加了 Server Push。在发现 Server Push 相关的提交之后就一直眼馋地盯着 1.13.9,在释出之后一些认识的大佬陆续升级了 Nginx,我盯着自己万年没升级 Stable 版本,最后还是下定决心升个级,顺便添加了 Brotli 支持和 TLS 1.3 的支持。

以下是正文

首先添加 Brotli 支持。

由于系统自带的 OpenSSL 版本普遍偏低,需要自行下载一份 OpenSSL 给 Nginx 用。目前浏览器支持的大多是 Draft 18,所以 clone 的也是 Draft 18 版本。

接下来安装 Nginx。先下载最新版本。

然后执行 nginx -V 获取旧版本 Nginx 的编译参数,再输入:

引用屈哥的说法:

enable-tls1_3 是让 OpenSSL 支持 TLS 1.3 的关键选项;而 enable-weak-ssl-ciphers 的作用是让 OpenSSL 继续支持 3DES 等不安全的 Cipher Suite,如果你打算继续支持 IE8,才需要加上这个选项。

再加上之前的编译参数,然后 make

由于之前我启用了旧版本 lua-nginx-module,编译会出错,换用新版本编译即可,不再赘述。

为了平滑升级,先备份旧版 Nginx。

再把编译好的版本拷过去。

接着测试一下有没有问题。

没问题的话会输出:

那么接下来要平滑重启 Nginx。首先找一下 nginx.pid 在哪(如果你忘了的话)。

then

没问题的话就可以用 nginx -V 测试一下了。

https://img.flyhigher.top/wp-content/uploads/2018/02/snip.jpg

Done!

然后编辑 Nginx 配置文件。在 nginx.conf 里加上:

这样就启用了 Brotli 支持。接着修改站点配置文件来支持 TLS 1.3。

TLS13 开头的为 TLS 1.3 新增的 Cipher Suite。

到此为止 Nginx 已经支持了 Brotli 和 TLS 1.3。至于 Server Push 的用法,最简单的用法是在站点配置文件中加入:

进阶用法可以参考 Nginx 官方的 这篇博文

那么来检查一下吧

要检查 Brotli 支持,只要使用 Chrome,然后在开发者面板检查响应头。如果成功地启用了 Brotli,就可以看到:

https://img.flyhigher.top/wp-content/uploads/2018/02/snipas10.jpg

这说明 Brotli 已经启用。再检查 TLS 1.3。Chrome 需将 chrome://flags/ 中的 TLS 1.3 改为 Enabled (Draft);Firefox 需将 about:config 中的 security.tls.version.max 改为 4。Firefox Developer Edition 已经默认启用。然后检查连接的安全信息即可看到:

https://img.flyhigher.top/wp-content/uploads/2018/02/snipastue.jpg

或者使用 SSLLabs 也可以检查:

https://img.flyhigher.top/wp-content/uploads/2018/02/sni.jpg

对于 Server Push,可以在浏览器的开发者面板中检查。

https://img.flyhigher.top/wp-content/uploads/2018/02/http2-server-push-chrome-dev-tools.jpg

(本图来自 nginx.com,版权属于 NGINX Inc. 因为不知道为啥我没有在自己的博客页面上找到标记为来自 Server Push 的资源,尽管我已经正确(但愿)配置了 Nginx)

(逃

赞赏
本文采用 CC BY-NC-SA 3.0 Unported 协议进行许可。
本文链接: https://flyhigher.top/develop/1042.html

发表评论

textsms
account_circle
email

  • https://secure.gravatar.com/avatar/141689cb377e5fa6af643cdb5b5841c2?s=80&d=mm&r=r
    blog.zixutech.cn

    问个问题,为什么我安装您的MDx主题后,分享功能无法使用,QQ显示非法请求,空间显示undefined??怎么解决呢?

    1周前回复
  • https://secure.gravatar.com/avatar/487f87505f619bf9ea08f26bb34f8118?s=80&d=mm&r=r
    海随风

    4周前回复
  • https://secure.gravatar.com/avatar/83a2d8e96c988f754679777272ff251e?s=80&d=mm&r=r
    ggg

    漂亮

    1月前回复
  • https://secure.gravatar.com/avatar/96bbbfaa15cd85ab2c4b7c6bc0ddb01b?s=80&d=mm&r=r
    cc

    :cry:

    1月前回复
  • https://secure.gravatar.com/avatar/70220f4f3530364804288e39a2444aff?s=80&d=mm&r=r
    zengtong

    赞 !

    3月前回复
    • https://secure.gravatar.com/avatar/53c7090e132130a876a795ebca94f8f4?s=80&d=mm&r=r
      rik6yhk

      @zengtong: Warning: Use of undefined constant auto – assumed ‘auto’ (this will throw an Error in a future version of PHP) in /www/flyhigher/wp-content/themes/mdx/functions.php on line 819

      2月前回复
      • https://secure.gravatar.com/avatar/40576c4b7e844c7b7f5b3bc50c14b42e?s=80&d=mm&r=r

        @rik6yhk: 啊最近升级了 PHP 版本导致了这个警告,不过导致这个警告的代码并不包含在公开发行的 MDx 版本中 orz

        2月前

无垠

新的个人页以及对 Nginx 启用 Brotli、TLS 1.3和 Server Push
趁着春节假期,作业一点没做,倒是抽空写了一个新的个人页。 Axton: About Me 到现在 axton.cc 这个域名的根域总算是启用了,之前一直在用二级域根域扔着没管。 个人页算是个假 …
扫描二维码继续阅读
2018-02-22