【问题标题】:Compiling ModSecurity in NGINX OSS在 NGINX OSS 中编译 ModSecurity
【发布时间】:2018-02-10 00:55:28
【问题描述】:

我正在尝试为 Nginx OSS Web 服务器编译 ModSecurity。我已按照他们的“快速入门指南”中的所有说明进行操作,但遇到了问题。连接新模块后,配置测试失败。

/var/log/nginx/error.log 的错误输出是:

2018/02/10 00:47:51 [emerg] 6026#6026: module "/usr/share/nginx/modules/ngx_http_modsecurity_module.so" is not binary compatible in /etc/nginx/modules-enabled/50-mod-http-modsecurity.conf:1

原来动态模块是用

编译的

sh ./configure --with-compat --add-dynamic-module=../ModSecurity-nginx

但这会导致错误。

根据我的阅读,我需要使用与现有 Nginx 实例相同的选项来编译模块。

我使用nginx -V 找到了当前选项,然后使用所有输出选项重新运行./configure,但这给出了相同的错误。

任何人都可以在这里为我指明正确的道路吗?

感谢您的帮助。

2018 年 10 月 29 日更新

似乎原始二进制文件也需要使用--with-compat 标志进行编译。我已经提交了一份关于这个问题的错误报告,可以在这里找到:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897926

也许它可以得到一些牵引力。

【问题讨论】:

  • 您好,Andrew Brown,您能解决这个问题吗?如果是,那怎么办?我也面临同样的问题。我的 Nginx 版本是 1.10.3。谢谢
  • 我在错误报告中没有看到任何动静,但显然 Ubuntu 存储库中最新的 Nginx 是使用 --with-compat 编译的!万岁!我仍然在搞乱完全设置它,但我已经做得比以前更远了。您可能必须从 1.10.3 升级。

标签: nginx mod-security


【解决方案1】:

我遇到了类似的问题。我使用的是 Nginx 1.10.3,这是 Debian Stretch 的默认版本。此版本似乎不适用于最新的 Nginx ModSecurity 连接器。

我删除了默认的 Nginx 版本,并从http://nginx.org/en/linux_packages.html 安装了最新的稳定 Nginx。之后,我可以毫无问题地为 Nginx 安装和加载 ModSecurity 模块。我遵循了这个指南:https://www.linuxjournal.com/content/modsecurity-and-nginx 为 Nginx 安装 ModSecurity 模块。

Nginx 的最新稳定版本 1.14.2 支持 --with-compat 标志。编译 Nginx 源代码时,请确保使用与运行 Nginx 相同的编译器选项。要找出用于构建当前运行的 Nginx 的编译时选项,请运行以下命令:nginx -V

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-16
    • 1970-01-01
    • 2021-01-12
    • 2018-12-05
    • 1970-01-01
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多