Thanks. You're right. After I load the module, it works.
Another question is for now I have 3 modules
-r-xr-xr-x 1 root wheel 17K 4 6 07:27 ngx_http_geoip_module.so*
-r-xr-xr-x 1 root wheel 25K 4 6 07:27 ngx_http_headers_more_filter_module.so*
-r-xr-xr-x 1 root wheel 328K 4 6 07:27 ngx_http_lua_module.so*
But it seems I only need to load ngx_http_headers_more_filter_module.so. For geoip and lua module, even though I didn't load them, they are still working.
So is there any differences between these modules? Why some of them need to be loaded before use, some are not?