Nginx 对客户端请求的限制

摘要:
本文记录了Nginx静态web服务器对客户端请求的限制的配置项。附加了禁止GET方法和HEAD方法的配置。limit_ exceptGET{allow192.168.1.0/32;denyall;}2) 最大HTTP请求包语法:client_max_body_sizesize;默认值:client_max_body_size1m;配置块:当http、服务器和位置浏览器使用大型http包发送请求时,它们的头将有一个Content-Length字段。此配置项主要用于限制内容长度的大小。当用户请求时Content Length的大小超过配置值时,将直接返回413 RequestEntityTooLarge。3) 请求的限制语法:limit_ratespeed;默认值:limit_rate0;配置块:http,server,location,如果此配置限制了客户端请求的每秒传输字节数。
本文记录一下Nginx静态web服务器对客户端请求限制的配置项。
1)按HTTP方法名限制请求
语法:limit_except method... {...}
配置块:location
Nginx可以通过该配置来限制客户端请求,可以取值为GET、HEAD、POST、PUT、DELETE、MKCOL、COPY、MOVE、OPTIONS、PROPFIND、PROPPATCH、LOCK、UNLOCK、PATCH。
注:允许GET方法就意味着允许HEAD方法。附上一个禁止GET方法与HEAD方法的配置。
limit_except GET {
    allow 192.168.1.0/32;
    deny all;
}
2)HTTP请求包体最大值
语法:client_max_body_size size;
默认:client_max_body_size 1m;
配置块:http、server、location
浏览器在发送含较大HTTP包体的请求时,其头部会有一个Content-Length字段,该配置项主要用来限制Content-Length的大小。当用户请求时Content-Length的大小超过了配置值,就会直接返回413-Request Entity Too Large。
3)对请求的限制
语法:limit_rate speed;
默认:limit_rate 0;
配置块:http、server、location、if
该配置时限制客户端请求的每秒传输的字节数。
针对不同客户端,可以使用$limit_rate参数执行不同的策略:
server {
    if ($slow) {
        set $limit_rate 4k;
    }
}
4)不限速的额度
语法:limit_rate_after time;
默认:limit_rate_after 1m;
配置块:http、server、location、if
该配置表示当Nginx向客户端发送的响应长度超过配置值时才开始限速。

免责声明:文章转载自《Nginx 对客户端请求的限制》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Unreal Engine is exiting due to D3D device being lostZFS文件系统及Freenas介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Django 部署到Nginx

在网上搜了很多篇Django+uwsgi+Nginx的部署文章,忙了一下午头昏脑胀,最终完成了部署。部署文章流程讲解都很好,但在细节上或许缺乏一些注意力,导致我多篇文章来回切换在字里行间寻找蛛丝马迹。既然我完成了部署,那我何不写下自己的流程和心得,让后来人有一些参考? 原理 Django+uwsgi+Nginx的工作模式如下图所示,三个服务各司其职,分别为...

Mac下用docker配置PHP环境杂记

1.下载官方镜像 docker pull nginx docker pull bitnami/php-fpm 2.启动容器 docker run -d --name myFpm -p -v 此处为宿主机文档目录:/app bitnami/php-fpm docker run -d --name myNginx -p 80:80 -v 此处为宿主机文档目...

uswgi

1、安装uwsgi注意: 1)在系统环境安装,非虚拟环境 2)使用对应python版本安装 3)要先安装python开发包 ###sudo apt-get install python3.6-dev pip3 install uwsgi 2、测试 uwsgi 是否正常:新建 test.py 文件,内容如下:def application(env, star...

源码方式在ubuntu系统上安装ruby1.9.2

ubuntu 10.4下ruby 1.9.2+rails 3.0开发环境配置      对没 Mac 却希望学习 Rails 的程序员来说,Ubuntu 是最理想的选择。多少令人遗憾地是:Ubuntu 的世界里缺少传说中最好的文本编辑器 TextMate 和事实上最好的图片编辑器 Photoshop,幸好 Emacs 和 GIMP 已经完全满足了我这个蹩脚...

nginx与nfs

一:nginx服务 二进制安装nginx包 作为web服务修改配置文件 让配置生效,验证配置 二:nfs服务 二进制安装nfs 作为共享存储挂载在三台web的网站根目录下 实现,在任意一台web上修改的结果,其余两台都可以看到 安装rpc #yum install rpcbind nfs-utils -y 三:nginx反向代理三台web 实现基于...

部署springboot+vue项目文档(若依ruoyi项目部署步骤)

摘自:https://blog.csdn.net/Dreamboy_w/article/details/104389797 部署springboot+vue项目文档(若依ruoyi项目部署步骤)一:部署linux + nginx二:部署windows + tomcat(无nginx)三:解决调用第三方api如百度地图api所存在的跨域问题最近部署若依项目,...