模块路径会因您使用的 Linux 发行版而异。一些发行版(例如基于 Debian 的)可能会将它放在奇怪的地方。
要查找系统上的模块路径,请运行nginx -V并--modules-path在输出中查找。例如:
nginx version: nginx/1.10.1
built by gcc 6.1.1 20160510 (Red Hat 6.1.1-2) (GCC)
built with OpenSSL 1.0.2h-fips 3 May 2016 (running with OpenSSL 1.0.2j-fips 26 Sep 2016)
TLS SNI support enabled
configure arguments: --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules ...
模块路径会因您使用的 Linux 发行版而异。一些发行版(例如基于 Debian 的)可能会将它放在奇怪的地方。
要查找系统上的模块路径,请运行
nginx -V
并--modules-path
在输出中查找。例如:您还应该知道,动态模块加载仅在 1.10 开发周期中引入。比这更早的模块被设计为直接编译到 nginx 中,并且需要更新以进行动态加载。您链接到的模块就是这样一个。请联系其开发人员以获取更多信息。
nginx -V
--modules-path
如果 nginx 配置了显式--modules-path
参数,则只会显示配置标志。(即,如果您在编译 nginx时./configure --modules-path=/path/to/modules
运行,您会--modules-path=/path/to/modules
在. 在我的 macOS 系统上,默认为,因此默认模块路径为; 而 Ubuntu 17.10 稍微打破了前缀单体,并期望.nginx -V
$NGX_PREFIX/modules
$NGX_PREFIX
/usr/local/nginx
/usr/local/nginx/modules
/usr/lib/nginx/modules
与许多 *nix 相邻的东西一样,这里的配置优先于约定。您可能会发现最好的办法是自己编译 nginx,在运行时指定
--prefix=
和/或--modules-path=
标志./configure
。这里和这里有一些关于这个过程的好文档。