Axton
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?imageView2/1/w/1870/h/528/interlace/1/q/90#

https://img.flyhigher.top/wp-content/uploads/2018/02/201708021736428973982.jpg?imageView2/1/w/200/h/198/interlace/1/q/90#

说到 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?imageView2/1/w/1280/h/248/interlace/1/q/90#

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?imageView2/1/w/926/h/178/interlace/1/q/90#

这说明 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?imageView2/1/w/928/h/424/interlace/1/q/90#

或者使用 SSLLabs 也可以检查:

https://img.flyhigher.top/wp-content/uploads/2018/02/sni.jpg?imageView2/1/w/2398/h/526/interlace/1/q/90#

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

https://img.flyhigher.top/wp-content/uploads/2018/02/http2-server-push-chrome-dev-tools.jpg?imageView2/1/w/1910/h/538/interlace/1/q/90#

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

(逃

赞赏
本文链接:https://flyhigher.top/develop/1042.html
本文采用 CC BY-NC-SA 3.0 Unported 协议进行许可
首页      开发      新的个人页以及对 Nginx 启用 Brotli、TLS 1.3和 Server Push

发表评论

textsms
account_circle
email

  • https://cn.gravatar.com/avatar/c70593b0f942f6d29f2ee6a7106133cb?s=80&d=mm&r=r
    SSSS

    子模组 ‘deps/brotli’ (https://github.com/google/brotli.git) 未对路径 ‘deps/brotli’ 注册

    11月前回复
    • https://cn.gravatar.com/avatar/40576c4b7e844c7b7f5b3bc50c14b42e?s=80&d=mm&r=r
      Axton博主

      @SSSS: 去 Brotil 仓库看一看有没有文档一类的?

      11月前回复
  • https://cn.gravatar.com/avatar/75808b309361983b97b9569d75a814e0?s=80&d=mm&r=r

    其实我好奇的是那个axton.cc是怎么搭的 :cool: 我也想搭一个

    1年前回复
    • https://cn.gravatar.com/avatar/40576c4b7e844c7b7f5b3bc50c14b42e?s=80&d=mm&r=r
      Axton博主

      @LTDSA: 自己写的,静态页面而已,绝大部分逻辑都是在前端做的

      1年前回复
  • https://cn.gravatar.com/avatar/75808b309361983b97b9569d75a814e0?s=80&d=mm&r=r

    为啥我升级Nginx以后所有网站都只剩一个Welcome to Nginx了 :cry:

    1年前回复
  • https://cn.gravatar.com/avatar/94d7be2e2342077c3c1ca34bc2dc23ed?s=80&d=mm&r=r
    Aegov

    问下博主的代码高亮怎么实现的呢,MDX自带吗 :cry:

    1年前回复
  • https://cn.gravatar.com/avatar/141689cb377e5fa6af643cdb5b5841c2?s=80&d=mm&r=r
    blog.zixutech.cn

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

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

    2年前回复
  • https://cn.gravatar.com/avatar/83a2d8e96c988f754679777272ff251e?s=80&d=mm&r=r
    ggg

    漂亮

    2年前回复
  • https://cn.gravatar.com/avatar/96bbbfaa15cd85ab2c4b7c6bc0ddb01b?s=80&d=mm&r=r
    cc

    :cry:

    2年前回复
  • https://cn.gravatar.com/avatar/70220f4f3530364804288e39a2444aff?s=80&d=mm&r=r
    zengtong

    赞 !

    2年前回复
    • https://cn.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://cn.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