Python中热补丁(Hot Patching)的实现和一些问题

2   20422 转为繁体

有时候我们可能需要只修改一部分代码而且要求修改立即生效,或者为了高可用性不允许停止服务程序,这时我们就需要热补丁

在debian,red hat等系统(或者vista之后的windows)的软件更新时,通常使用替换符号链接来达到高可用性。

对Python来说,解释器预先处理了脚本生成字节码,并读入内存;所以之后硬盘上的文件发生了什么变化,就只能想办法命令解释器重新读入新的脚本。实现这个功能的内建命令是reload

Read More

搭建一个不被审查的串流站点

17   51208 转为繁体

原标题:被害妄想症该如何生存

先看配置:

假设:

审查机关拥有运营商级别的入侵检测设备(比如GFW)

说明:

  1. 全站使用https,关闭SSLv3,关闭弱加密组件
  2. default_server开启80端口,使用自签名证书;真实需要访问的域名(example.com)必须使用有效的证书,或者在本地信任根证书。注意example.com不能开启80端口,且与default_server使用的证书不能相同。不要使用泛域名证书。这是为了防止审查机关通过直连IP查看返回的证书中的Common Name来得到真实域名。这样配置之后,直连IP https://xxx.xxx.xxx.xxx默认是返回自签名证书,无法得到真实example.com。
  3. 选择性开启autoindex,通过cookie鉴别。注意也可以通过HTTP Basic Authenication认证。对匹配文件夹的uri(”/”结尾)做认证,示例中只有带cookie coo=coo的请求才会返回autoindex,否则返回404。
  4. 在location /中禁用目录末尾自动加斜杠,因为如果自动加斜杠,审查机关可以通过暴力猜测出服务器上有哪些目录确实存在(返回了301到末尾加/的url)。方法是if (-d $request_filename)返回404。