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。