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

CentOS7+OpenResty环境下Nginx共享内存区大小冲突问题求助

修复OpenResty Nginx共享内存Zone大小冲突问题

这个错误的核心原因很明确:你在Nginx配置中重复声明了名为limit的共享内存zone,且两次指定的内存大小不一致(一次是10MB,一次是50MB),Nginx不允许这种冲突的配置存在。

下面是具体的修复步骤,你已经打开了vi编辑器,可以直接跟着操作:

  1. 搜索所有冲突的zone声明
    在vi的编辑模式下,按下/键,输入zone=limit然后回车,这会定位到第一个包含该关键词的行。按n键可以跳转到下一个匹配项,N键跳回上一个,以此遍历所有相关配置行。

    你会找到至少两行类似这样的配置(可能在主配置nginx.conf里,也可能在include引入的子配置文件中):

    limit_req_zone $binary_remote_addr zone=limit:10m rate=10r/s;
    limit_req_zone $binary_remote_addr zone=limit:50m rate=10r/s;

  2. 统一zone配置
    你有两种解决方式:

    • 方案一(推荐):保留其中一个声明,删除或注释掉另一个。比如如果你想使用50MB的内存,就在10MB那行的开头加#注释掉,或者直接删除该行。
    • 方案二:如果确实需要两个不同的限流规则,把其中一个zone的名字改掉(比如改成limit_user或limit_ip),同时确保对应的限流引用也同步修改。
  3. 验证配置并重启
    修改完成后,执行配置测试命令确认修复:

    /usr/local/openresty/nginx/sbin/nginx -t
    

    当看到nginx: configuration file /usr/local/openresty/nginx/conf/nginx.conf test is successful的提示,就说明配置没问题了。最后重启Nginx让修改生效:

    /usr/local/openresty/nginx/sbin/nginx -s reload
    

⚠️ 注意:别忘了检查nginx.conf中通过include指令引入的其他配置文件(比如conf.d/目录下的.conf文件),这些地方也可能存在重复的zone声明。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:08:05