--modules-path 用于指定动态模块(.so 文件)安装路径,影响 make install 时的复制目标;静态模块不受其影响;nginx 运行时需通过 load_module 指令指定绝对路径加载,且该路径须对 nginx 用户可读。

--modules-path 是编译 Nginx 时指定模块安装路径的专用参数。
模块路径由 --modules-path 控制
该参数决定 动态模块(.so 文件) 的默认存放位置。不指定时,模块会装到 --prefix 下的 modules/ 子目录,例如 /opt/nginx/modules。
显式设置后,所有通过 --add-module= 或 --with-xxx-module=dynamic 编译的动态模块都会被复制到该路径。
- 示例:./configure --prefix=/opt/nginx --modules-path=/usr/lib64/nginx/modules
- 效果:执行
make install后,ngx_http_v2_module.so等动态模块将出现在/usr/lib64/nginx/modules/
静态模块不需要单独指定路径
用 --with-http_ssl_module 这类参数启用的模块是静态编译进主程序的,不生成独立文件,因此不受 --modules-path 影响。
只有明确声明为 =dynamic 的模块(如 --with-http_xslt_module=dynamic)或第三方模块(通过 --add-module= 引入),才依赖此路径。
注意权限与运行时加载
Nginx 启动时按配置中 load_module 指令的绝对路径加载模块,--modules-path 只影响 make install 阶段的复制目标。
- 确保该目录对运行 Nginx 的用户(如 nginx 用户)有读取权限
- 若模块路径不在标准位置,
nginx.conf中必须写完整路径,例如:load_module /usr/lib64/nginx/modules/ngx_http_geoip2_module.so;











