在配置ningx ngx_http_limit_req_module 限制单个IP请求处理速率时,出现在如下错误:

**#用户请求www.req.com时展示为目录索引,提供下载服务** 
server{
        listen 80;
        server_name www.req.com;()

        location / {
        root /usr/share/nginx/dwonload;
        autoindex on;#开启目录索引
        autoindex_localtime on;
        autoindex_exact_size off;
        limit_req zone=one burst=3;#限制单个IP并发请求数(同时只处理3个)
        }
}

测试nginx配置文件:

[root@web01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] zero size shared memory zone "one"
nginx: configuration file /etc/nginx/nginx.conf test failed

提示nginx: [emerg] zero size shared memory zone “one”,名称为one大小的共享内存空间zene没有。

解决办法:

  1. 百度 查大家有没有遇到这类情况。找了半天
    大部分人是说nginx有的版本不支持,需要注释掉这功能。小部分人一气之下重装nginx… 这都不是合理的解决办法!
  2. 终极解决办法: 在nginx 配置文件http{}
    区域创建一个zone内存空间,相当于在内存中创建了一个水桶,这个水桶扎了很多眼用来漏水。limit_req zone=one burst=3 这句直白解释: 我家在非洲,比较穷,我去村里找一个名称叫zone存水的大桶,买它3个漏水的眼,同时接水,桶能够给我3个眼同时放水,这样我接水也快点。zero size shared memory zone “one” 这个错误是 我现在还没找到这个桶,我们村根本不存在这个漏水桶,所以报错了。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐