You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编译源码安装NGINX后集成ModSecurity遇问题求助

问题解决:NGINX编译ModSecurity报错与Upstream解析失败

一、解决make modules报错问题

出现make: *** No rule to make target 'modules'. Stop.的核心原因是未在NGINX源码根目录执行命令,或configure未正确引入ModSecurity模块,解决步骤:

  1. 切换到你下载并解压的NGINX 1.18.0源码根目录(例如cd /root/nginx-1.18.0)
  2. 重新执行configure命令,必须指定ModSecurity的nginx连接器源码路径,示例:
    ./configure --add-module=/root/modsecurity-nginx
    
    注意替换/root/modsecurity-nginx为你实际的ModSecurity连接器源码路径,若之前有其他编译参数,需一并加上(比如--prefix=/usr/local/nginx等)
  3. 执行make modules,此时会在源码目录的objs子目录下生成ngx_http_modsecurity_module.so模块文件
  4. 将编译好的模块复制到NGINX的模块目录(比如/usr/local/nginx/modules/):
    cp objs/ngx_http_modsecurity_module.so /usr/local/nginx/modules/
    
  5. 在NGINX主配置文件nginx.conf的最顶部添加模块加载指令:
    load_module modules/ngx_http_modsecurity_module.so;
    

二、解决Upstream主机未找到问题

出现nginx: [emerg] host not found in upstream "website.com"是因为配置中指定的后端主机无法被DNS解析或地址错误,解决步骤:

  1. 打开报错的配置文件/etc/nginx/sites-enabled/site.conf,定位到第39行的upstream配置块
  2. 针对website.com做以下检查:
    • 用ping website.com或nslookup website.com测试服务器是否能解析该域名,若解析失败,替换为后端服务器的真实IP地址
    • 若该域名是测试用的占位符,临时替换为localhost(如果本地有后端服务),或注释掉整个upstream块及关联的proxy_pass指令(仅测试配置用)
  3. 修改后执行sudo nginx -t验证配置,无报错后执行sudo systemctl reload nginx生效

内容的提问来源于stack exchange,提问作者masterofconsfu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 10:27:05