Linux

TL; DR:对软链进行 sed 请使用 sed -i --follow-symlinks ,否则软链会变成常规文件。

本来我已经很久不拿这种非常零散的点水一篇文章了但是由于这个坑我觉得无比愚蠢我决定上来吐槽一下

你们 Debian 特色的 nginx 配置文件分为 sites-available 和 sites-enabled,某次我对着 sites-enabled 来了一次 sed -i 之后又愉快的改配置文件然而 reload 谜之不生效,然后就发现软链都变常规文件了。

原因大致是 sed 会在内存里完成[……]

Read more

老鼠就不要对一只猫的仁慈抱有希望,尤其是那只猫曾经是老鼠 ——题记

写在前面

阅读本文可能需要关于 DNS 的基本知识,权威 DNS 和递归解析过程等参见先前的文章:浅谈 DNS 的解析

9月18日上午,各大社交网络开始盛传著名二次元同人画作社区 黄图网站 PIXIV 在大陆无法访问,各种说法甚嚣尘上,有说 P 站自主规制的,有说 P 站被墙的,也有认为是网络抽风的,实际上这个问题要判断到底是哪边的问题是比较简单的,所谓实践出真知,让我们来试着判断一下 P 站为什么会无法访问

关于 P 站情况的分析

首先来看看国内访问是什么情况:

[crayon-5b03b6ff67ddf8730[……]

Read more

shell 脚本如何判断所在目录问题

这是某业务广泛的 QQ 群里的一次讨论,尘光大前辈问起都是怎么获取脚本所在绝对路径。

首先有同学表示可以使用 pwd配合 $0参数,但是很明显脚本执行的时候并不一定在当前 working dir,这就会带来一个明显的问题就是,如果执行的方式是 ./a.sh,那么获取到的$0和 pwd 的结果才是相同的,否则就是不同的:

当然,可以说判断执行的方式,根据判断$0是否是绝对路径等方法可以区分这个情况,但是首先这样就变[……]

Read more

目录

  1. 什么是 Websocket
  2. 为什么使用 Websocket
  3. 性能理论分析
  4. Websocket 服务端和反代实践
  5. 对反代性能进行测试
  6. Websocket 和 HTTP

什么是 Websocket

Websocket 是起初由 HTML5 定义的一个建立在单 TCP 连接上的全双工通信协议,后从 HTML5 规范独立并由 RFC 6445 标准化,但仍被习惯性地称为 HTML5 Websocket。

Websocket 工作在 HTTP 的80和443端口并使用前缀 ws://或者[[……]

Read more

在 Nginx 中,四层的数据被称为 stream,和四层代理有关的模块主要有:

  • ngx_stream_core_module:四层代理的基本功能模块
  • ngx_stream_upstream_module:四层代理转发到上游的模块
  • ngx_stream_proxy_module:四层代理相关配置

其他 stream 相关模块用于如 SSL 支持、geoip 支持、简单访问控制支持等,本次测试并没有使用到。

使用的注意事项

Nginx 的四层反代功能较为简单,其访问控制模块因为源站 IP 可以进行伪造,[……]

Read more