1. 要想在apache模块中获取对端IP(直接和apache相连),要考虑mod_extract_forwarded的影响。mod_extract_forwarded干了一件很“讨厌”的事情,它把request_rec的remote_ip字段保存为远端IP(真正的远端IP,而不是代理的IP,在有代理的情况下),而把和apache直接相连的(代理)机器的IP保存在subprocess_env中。
2. 在apache模块中可以使用r->request_config在请求中保持数据,但是要注意 r->main 和 r->prev。apache 可能使用 ap_internal_redirect,ap_run_sub_req 重新生成了request。此时要获取最初保存在r->request_config中的数据,需要向前遍历r->prev和r->main,获取正确的r。
3. 因为static 函数是文件范围的,在该文件外,函数是不可见的,这个给单元测试带来麻烦,可以通过#include <xxxx.c> 的方式,这样static函数在你的单元测试代码中就可见了。
4. 分布式系统中,保证各节点数据的强一致性带来另一个问题,一个节点速度慢会严重拖慢整个系统的速度,系统速度取决于最慢的那个节点。
5. chown -R daemon.daemon /data0/tmp,这条命令执行快吗?答案是取决于/data0/tmp下面的文件数量,如果有上千万的文件,那么这条命令可能要执行半天。记住,磁盘,是最可能引起阻塞的地方。
6. 使用clock_gettime函数,记得链接librt.so。