一般使用容器部署的话会将data目录挂出。
在命令行添加nginx limit zone
首先,进入/data/nginx,ls后会发现有这些目录。
代码语言:javascript复制custom dead_host default_host default_www dummycert.pem dummykey.pem proxy_host redirection_host stream temp
进入 default_host,创建文件:
代码语言:javascript复制touch http_top.conf
vim http_top.conf
// 文件就这一行内容
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=3r/s;
这是创建了一个zone叫mylimit,使用内存10M来记录来往请求。限速是3 qps。
如果有需求,可以创建更多的zone。
后续就能通过图形界面编辑了。
图形界面配置
进入nginx的图形界面,在advance界面可以为不同的子path添加规则: 下面的规则使用了刚刚创建的mylimit zone。初始的时候允许8个并发。
代码语言:javascript复制 location /apps/sharingpath/ {
limit_req zone=mylimit burst=8 delay=6;
# Proxy!
include conf.d/include/proxy.conf;
}
多刷新下/apps/sharingpath/
下的路径,会发现超过限流后会返回503。
剩下的可以参考nginx的限流来了解更多。