运行nginx -t时出现此错误:
nginx: [emerg] unknown directive "subs_filter_types" in /etc/nginx/sites-enabled/my.site.com.conf:285
nginx: configuration file /etc/nginx/nginx.conf test failed
因此,我需要安装替换过滤器模块并在nginx文档https://www.nginx.com/resources/wiki/modules/substitutions/#subs-filter-types中安装 表示要运行以下命令:
git clone git://github.com/yaoweibin/ngx_http_substitutions_filter_module.git
./configure --add-module=/path/to/module
问题是我的nginx安装中以及 git存储库。我真的不明白 至少我想知道该nginx configure脚本的内容。
答案 0 :(得分:3)
您所指的说明适用于编译安装。
假设您想将模块添加到现有的 NGINX安装中,以下是使事情运行的通用步骤。
/usr/local/src/nginx
git clone
NGINX模块的源代码到您的系统上,例如/usr/local/src/nginx-module-foo
cd /usr/local/src/nginx
。在这里可以找到configure
脚本。您基本上将使用所讨论的特定模块的config
的位置来配置NGINX,从而进行下一步:./configure --add-dynamic-module=../nginx-module-foo --with-compat
make
作为编译的补充,您将在NGINX源的.so
目录中的某个位置放置模块的objs
文件。然后,您将其复制到例如/usr/lib64/nginx/modules/
目录。
要使您现有的NGINX加载该模块,请在load_module modules/foo.so;
的最顶部添加/etc/nginx/nginx.conf
。
您可以理解整个编译方法的许多弊端:一个是在生产系统上安装编译软件(gcc
),另一个是每次升级NGINX或模块时都必须重新执行所有这些步骤。
由于上述原因,您可能需要搜索第三方模块的打包安装。
对于CentOS / RHEL系统,您可能想看看GetPageSpeed仓库(订阅软件,由于我是维护者,我倾向于提及它。但是当时CentOS / RHEL 8是免费的)编写所需的模块,goes down安装到几个命令:
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install nginx-module-substitutions
对于基于Debian的系统,可能存在相同的替代PPA。
答案 1 :(得分:0)
只需将前缀 subs 替换为 sub 。
对于默认的nginx 1.10.3安装(Ubuntu 16.04.5 LTS)
nginx -V 应该具有标志-with-http_sub_module ,以使用 sub _ *指令。
用法示例:
.ToList();