看到那个把Firefox塞满扩展的实验,就像看到nginx.conf里写满load_module *.so一样窒息。
Nginx的模块化架构从来就不是为"全量加载"设计的。静态编译的模块在worker进程启动时就全部映射进内存,这种贪婪加载(greedy loading)在浏览器里表现为内存爆炸和事件循环阻塞,在高并发场景下就是请求延迟的基线漂移。
OpenResty的优势恰在于此:Lua模块的按需require和jit编译,配合lua_shared_dict做状态隔离,本质上是一种动态沙箱。相比之下,Firefox的扩展模型还停留在静态链接的思维——每个content script都是全局命名空间的污染者。
真正的模块化应该是热插拔的,不是超市购物车。