Nginx限制访问代理TCP资源
2016-08-08 00:00
281 查看
摘要: Nginx 限制访问 代理TCP资源
stream {
...
server {
listen 12345;
deny 192.168.1.2;
allow 192.168.1.1/24;
allow 2001:0db8::/32;
deny all;
}
}
规则按顺序处理,从上到下:如果在序列中第一个指令deny all,那么后面所有allow指令都没有效果。在该例子中,子网络192.168.1.1/24允许访问,除了192.168.1.2。IPv6范围地址2001:0db8::/32也允许,其它任何IP地址被拒绝。
首先,让我们定义区域存储一台服务器最大TCP连接数,和标识连接的键。这可以在stream上下文中使用limit_conn_zone指令完成:
stream {
...
limit_conn_zone $binary_remote_addr zone=ip_addr:10m;
...
}
标识连接的键定义为$binary_remote_addr,代表客户端IP地址的二进制格式。共享内存区域的名字是ip_addr,区域大小是10兆字节。
区域定义后,使用limit_conn指令限制连接。它的第一个参数指定共享内存区域的名字。第二个参数,指定每个IP地址允许连接的最大连接数:
stream {
...
limit_conn_zone $binary_remote_addr zone=ip_addr:10m;
server {
...
limit_conn ip_addr 1;
}
}
当每个IP地址的连接数时,请注意,多个主机在一个广播地址(NAT)设备共享相同IP地址。
server {
...
proxy_download_rate 100k;
proxy_upload_rate 50k;
}
使用这些设置,客户端能通过单个连接最大每秒100千字节下载数据,通过单个连接最大每秒50千字节上传数据。然而,客户端能打开多个连接。如果我们的目标是为每个客户端限制整体加载的速度,连接数必须限制为1:
stream {
...
limit_conn_zone $binary_remote_addr zone=ip_addr:10m;
server {
...
limit_conn ip_addr 1;
proxy_download_rate 100k;
proxy_upload_rate 50k;
}
}
1 通过IP地址限制访问
Nginx能允许或拒绝基于特定IP地址或客户端计算机IP地址范围。为了允许或定义访问,在stream上下文或server块中使用allow和deny指令:stream {
...
server {
listen 12345;
deny 192.168.1.2;
allow 192.168.1.1/24;
allow 2001:0db8::/32;
deny all;
}
}
规则按顺序处理,从上到下:如果在序列中第一个指令deny all,那么后面所有allow指令都没有效果。在该例子中,子网络192.168.1.1/24允许访问,除了192.168.1.2。IPv6范围地址2001:0db8::/32也允许,其它任何IP地址被拒绝。
2 限制TCP连接数
你能限制来自一个IP地址同时的TCP连接。这能防止拒绝服务(Dos)攻击。首先,让我们定义区域存储一台服务器最大TCP连接数,和标识连接的键。这可以在stream上下文中使用limit_conn_zone指令完成:
stream {
...
limit_conn_zone $binary_remote_addr zone=ip_addr:10m;
...
}
标识连接的键定义为$binary_remote_addr,代表客户端IP地址的二进制格式。共享内存区域的名字是ip_addr,区域大小是10兆字节。
区域定义后,使用limit_conn指令限制连接。它的第一个参数指定共享内存区域的名字。第二个参数,指定每个IP地址允许连接的最大连接数:
stream {
...
limit_conn_zone $binary_remote_addr zone=ip_addr:10m;
server {
...
limit_conn ip_addr 1;
}
}
当每个IP地址的连接数时,请注意,多个主机在一个广播地址(NAT)设备共享相同IP地址。
3 限制带宽
你能配置TCP连接的最大下载或上传速度。分别包括proxy_download_rate或proxy_upload_rate指令:server {
...
proxy_download_rate 100k;
proxy_upload_rate 50k;
}
使用这些设置,客户端能通过单个连接最大每秒100千字节下载数据,通过单个连接最大每秒50千字节上传数据。然而,客户端能打开多个连接。如果我们的目标是为每个客户端限制整体加载的速度,连接数必须限制为1:
stream {
...
limit_conn_zone $binary_remote_addr zone=ip_addr:10m;
server {
...
limit_conn ip_addr 1;
proxy_download_rate 100k;
proxy_upload_rate 50k;
}
}
相关文章推荐
- Nginx 限制访问 - 限制对代理TCP资源的访问
- Nginx 限制访问 - 对代理 HTTP 资源限制访问
- CentOS6.3搭建Nginx代理访问MongoDB GridFS图片资源
- Nginx严格访问代理HTTP资源
- nginx(11) nginx 配置动静分离,设置默认主页,限制某个路径的资源代理全解
- 第十一节——限制访问代理的HTTP资源
- CentOS6.3搭建Nginx代理访问MongoDB GridFS图片资源(已经验证-不错)
- CentOS6.3搭建Nginx代理访问MongoDB GridFS图片资源
- 通过nginx代理拦截请求进行全局访问限制
- 通过nginx代理拦截请求,进行全局访问限制
- nginx反向代理服务,因配置文件错误导致访问资源时出现404
- Linux下搭建Nginx代理访问MongoDB GridFS图片资源
- nginx反向代理服务因配置文件错误导致访问资源时出现404
- 代理访问列表 之限制MP3和MPG下载、限制FTP连接、限制发帖
- nginx与apache限制ip并发访问 限制ip连接的设置方法
- 次数加时间限制及限制代理访问或在服务器上面禁掉可疑IP访问
- nginx指定目录ip访问限制
- nginx指定目录ip访问限制
- 浏览器不能访问本地资源的限制
- nginx限制ip访问,进行认证