我在使用Ubuntu 18.04和带有ModSecurity的Nginx时遇到了一个奇怪的问题。我已经正确编译了所有内容,并且在激活ModSecurity模块时可以正常工作,但是无论何时激活规则,我都会得到以下信息:
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_M_construct null not valid
Nginx崩溃且无法投放页面-有任何想法吗?
答案 0 :(得分:0)
我在Ubuntu 16.04中也遇到了这个问题。如以下错误所示,这似乎是最新版本的ModSecurity的问题:https://github.com/SpiderLabs/ModSecurity/issues/2180
如果您是通过git下载的ModSecurity,则可以使用以下命令返回工作版本:
git reset --hard d5b93c1013ca9c9a96c75369576b54832e9a2b48
然后清理您的ModSecurity构建目录并重新构建。重建ModSecurity后,请重新启动nginx。在GitHub中关闭上述错误后,可能可以安全地再次更新到最新版本。
编辑:此问题已得到纠正。只需更新并重新编译ModSecurity。