nginx

共 10 篇文章。

polyxslt:给浏览器补上一个轻量级 XSLT 处理器

• Development

我给本站的 RSS 和 Atom feed 加了一个纯 JavaScript 实现的 XSLT 处理器,为浏览器移除内建 XSLT 支持做准备。

本站在2021年2月5日为RSS feed和sitemap添加了XSLT样式,后来重新设计本站主题 chaos-theme 时也沿用了这一做法。

这些 XML 文档便于程序读取,但直接给人看就不太直观;XSLT 可以把它们转换成 HTML,让同一份内容同时服务于程序和人类读者。

阅读全文… ( 本文约 3613 字,阅读大致需要 8 分钟 )

作弊条:在 Nginx 中正确配置自定义 404 页面

• Cheatsheets

最近给 blog 增加了一个自定义的 404 错误页面。像 Hugo 这样的静态网站生成器在构建时,默认会把渲染好的 404 页面直接输出在网站根目录下,即 /404.html。

针对这类页面,我们通常希望:

  1. 当访客访问不存在的网址时,服务器呈现该页面的内容,并且 HTTP 状态码必须是 404。
  2. 当有人(或爬虫)直接在浏览器中访问 /404.html 时,同样呈现其内容,但返回的 HTTP 状态码依然必须是 404,而不是 200 OK。
阅读全文… ( 本文约 1258 字,阅读大致需要 3 分钟 )

记一笔 paperless-ngx

• Cheatsheets

其实想搭一套 paperless-ngx 已经挺久的了,趁着四月底休假的时候搞了一动。

我们经常会有一些各式各样的 PDF 文档,例如和各种供应商、公司之间签署的文件、账单,以及参加一些学术会议时留下的幻灯、资料等等。比较自然的办法就是创建不同的文件夹来分门别类地保存。然而,简单地用文件系统来保存这些文件有这样一些问题:

阅读全文… ( 本文约 1786 字,阅读大致需要 4 分钟 )

FreeBSD 上的 nginx kTLS 支持

• Security

昨天,FreeBSD 13.2 正式发布了。kTLS 是在 FreeBSD 13.0 中由 Netflix 赞助的新功能,过去,TLS/SSL 应用程序对于通讯内容的加解密通常是在用户态进行的,这样一来,系统在读取出数据和发出数据之前需要进行额外的上下文切换,并在内核和用户地址空间之间来回复制缓冲区来满足加解密的需要。有了 kTLS 之后,内核可以在 sendfile(2) 时直接在内核上下文中完成加密和填充到网络协议栈的操作,从而减少了上下文切换和不必要的复制操作。

阅读全文… ( 本文约 836 字,阅读大致需要 2 分钟 )

采用了基于 isso 的评论系统

• Cheatsheets

上回书 说到从 Movable Type 搬到 Hugo 上之后,就彻底失去了评论和 pingback 的功能。 因为现时正经写 blog 的人已经越来越少,因此 pingback 似乎意义不太大了,但是能够收集评论反馈还是有一些意义的。

早前,Movable Type 实现的评论系统与其自身的账户系统有集成,并且还支持包括 Facebook、Google 在内的一系列其他 OpenID 的系统。这个功能的一个好处是对于经常访问的人来说比较友好,例如站主可以将某个 ID 设置为受信任的 ID,从而避免先审后发。

阅读全文… ( 本文约 1091 字,阅读大致需要 3 分钟 )

启用 SPDY

• Networking

之前 Frank 同学提到了这个问题,所以今天花了些时间来配置。 nginx 对 SPDY 的支持是一项比较新的特性,只有在 1.3.x 版本以上才支持。FreeBSD 的 nginx-devel 默认并不启用 SPDY,需要在 make config 的阶段启用。

阅读全文… ( 本文约 131 字,阅读大致需要 1 分钟 )

nginx的https压缩

• Security

官方版本的 nginx 在 https 的时候是不对流量做压缩的,具体原因在这里 和 这里 有解释,它会增加半兆的连接内存开销。

启用 https 压缩除了需要 nginx 本身做少量修改(例如去掉 if[n]def SSL_OP_NO_COMPRESSION 部分的语句块)之外,还需要 OpenSSL 本身编译了加密支持。FreeBSD ports 的 security/openssl 预设启用了 ZLIB 扩展,但基本系统目前没有(由于 zlib 是很大的一片代码,也许需要做了 Capsicum 处理之后才可以放进来用)。

阅读全文… ( 本文约 286 字,阅读大致需要 1 分钟 )

用 fcgiwrap 来跑 Movable Type

• Cheatsheets

我的 blog 在之前一直是用 Apache HTTPD 来作为 CGI 引擎来跑 Movable Type。在迁移到北美之前,使用两个域名/IP来分别运行静态页面 (lighttpd) 和 CGI 内容。后来因为全面转向 nginx,在迁移过程中改成了使用一个域名、使用 nginx 在前面跑静态页,并作为反向代理来连接后端的 Apache 1.3.x 实例(先前是 Apache 2.2.x,由于这个实例只用来跑 CGI,所以采用了较低版本的 Apache 以节省资源)。

阅读全文… ( 本文约 711 字,阅读大致需要 2 分钟 )

nginx中的TLS/SSL配置

• Security

nginx可以作为很多种不同的用途。对Web服务器来说,nginx可以直接用作https服务器,也可以用于为现有的http Web服务器作为前端代理和负载平衡的同时提供https之用。

阅读全文… ( 本文约 1201 字,阅读大致需要 3 分钟 )

测试SSL

• Development

周末抽时间对网站做了一些调整。主要是把网站迁移到nginx上,不过遇到一些问题。Movable Type以FCGI::Spawn运行的时候,有时会反复出现先前的页面(例如,在mt.cgi上登录时,在提交登录之后仍会出现登录界面,而不是正常完成登录)。用ktrace看了一下FastCGI进程,结果发现之前看到的资料里面有相当多的小问题,但这个问题最终没有解决,暂时起了一个Apache来以cgi方式处理来绕过问题了。

阅读全文… ( 本文约 239 字,阅读大致需要 1 分钟 )