nginx与apache限制ip并发访问 限制ip连接的设置方法_nginx

nginx

nginx限制ip并发数,也是说限制同一个ip同时连接服务器的数量

1.添加limit_zone
这个变量只能在http使用
vi /usr/local/nginx/conf/nginx.conf
limit_zone one $binary_remote_addr 10m;

2.添加limit_conn
这个变量可以在http, server, location使用
我只限制一个站点,所以添加到server里面
vi /usr/local/nginx/conf/host/gaojinbo.com.conf
limit_conn one 10;

3.重启nginx
killall nginx -HUP

复制代码 代码如下:

vi /usr/local/nginx/conf/vhosts/down.redocn.com.conf
limit_zone one $binary_remote_addr 10m;
server
{
listen 80;
server_name down.redocn.com;
index index.html index.htm index.php;
root /data/www/wwwroot/down;
error_page 404 /index.php;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
#Zone limit
location / {
limit_conn one 1;
limit_rate 20k;//限速
}

# serve static files
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
root /data/www/wwwroot/down;
expires 30d;
}
}

apache

要使apache服务器做对同一IP地址的连接限制,需要mod_limitipconn来实现。一般需要手动编译。不过模块作者也提供了一些编译好的模块,根据自己的apache版本可以直接使用。
1。编译方式:
tar zxvf mod_limitipconn-0.XX.tar.gz
cd mod_limitipconn-0.XX
make apxs=/usr/local/apache/bin/apxs —–这里要按你自己的路径设置
make install apxs=/usr/local/apache/bin/apxs —–这里要按你自己的路径设置
2.rpm安装方式:
直接下载mod_limitipconn-0.xx.rpm
rpm -Uhv mod_limitipconn-0.xx.rpm
然后确认产生的mod_limitipconn.so文件在apache服务器模块目录里。

3。编辑httpd.conf文件:

复制代码 代码如下:

ExtendedStatus On
LoadModule limitipconn_module modules/mod_limitipconn.so < IfModule mod_limitipconn.c >
< Location / > # 所有虚拟主机的/目录
MaxConnPerIP 3 # 每IP只允许3个并发连接
NoIPLimit image/* # 对图片不做IP限制
< /Location>
< Location /mp3 > # 所有主机的/mp3目录
MaxConnPerIP 1 # 每IP只允许一个连接请求
OnlyIPLimit audio/mpeg video # 该限制只对视频和音频格式的文件
< /Location >
< /IfModule>

本文出自 “学习要永恒” 博客

时间: 2024-07-28 19:25:24

nginx与apache限制ip并发访问 限制ip连接的设置方法_nginx的相关文章

同一域名对应不同IP和访问指定主机文件内容的方法

PHP获取远程主机文件内容方法很多,例如:file_get_contents,fopen 等. <?php echo file_get_contents('http://demo.fdipzone.com/test.php'); ?> 但如果同一域名对应了不同IP,例如 demo.fdipzone.com 对应3个IP192.168.100.101, 192.168.100.102, 192.168.100.103. 则不能使用file_get_contents获取 192.168.100.1

Nginx 502 Bad Gateway错误常见的4种原因和解决方法_nginx

1.FastCGI worker进程数是否不够 通过命令查看服务器上一共开了多少的 php-cgi 进程 复制代码 代码如下: ps -fe |grep "php" | grep -v "grep" | wc -l 使用如下命令查看已经有多少个php-cgi进程用来处理tcp请求 复制代码 代码如下: netstat -anop | grep "php" | grep -v "grep" | wc -l 接近配置文件中设置的数

tplink路由器IP带宽控制及分配带宽的设置方法

本文介绍TL-WDR4310的带宽控制功能的应用和设置方法. TL-WDR4310应用拓扑图 某用户使用TL-WDR4310进行宽带共享上网,需保证内网台式机进行游戏.视频正常应用,同时保证其他终端可以正常浏览网页.QQ聊天等基本应用. 用户线路为4M ADSL线路,上行带宽为512Kbps,下行带宽为4096Kbps.结合用户需求与总带宽,分配规则如下: 注意:该表仅供参考,分配值以实际为准.该表格中,其他终端共用分配的带宽. 分配原则:保证最小带宽总和不超过总带宽. 为了满足该需求,需要为台

Nginx防止直接用IP访问Web服务器的设置方法_nginx

官方文档中提供的方法: If you do not want to process requests with undefined "Host" header lines, you may define a default server that just drops the requests: 复制代码 代码如下: server { listen 80 default_server; server_name _; return 444; } 说白了就是只要是访客用ip访问就直接重置4

Nginx+PHP(FastCGI)搭建高并发WEB服务器(自动安装脚本)第二版_nginx

本文是依照张宴的 Nginx 0.7.x + PHP 5.2.10(FastCGI)搭建胜过Apache十倍的Web服务器(第5版) 编写 原文地址 http://blog.s135.com/nginx_php_v5/ 因为编译过程和等待时间繁琐,于是就自己写了个全自动安装的shell脚本,此脚本可以随意修改,转载请注明出处. 这篇文章为这个系列的第二版,在第一版的基础上加入 1.日志切割 2.智能选择yum或者rpm安装 下载地址 注意:如果不能使用yum源,请放入系统光盘,单张dvd的,如果

Nginx 禁止访问某个目录或文件的设置方法_nginx

复制代码 代码如下: location = /config/ { return 404; } location =/config.ini{ return 404; } 这样只能禁止访问 http://www.jb51.net/path/ 复制代码 代码如下: location = /path/ { return 404; } 禁止访问 http://www.jb51.net/path/test.php 复制代码 代码如下: location ^~ /test { deny all; } 可能te

Nginx配置统计流量带宽请求及记录实时请求状态的方法_nginx

流量带宽请求状态统计ngx_req_status用来展示nginx请求状态信息,类似于apache的status,nginx自带的模块只能显示连接数等等信息,我们并不能知道到底有哪些请求.以及各url域名所消耗的带宽是多少.ngx_req_status提供了这些功能. 功能特性 按域名.url.ip等等统计信息 统计总流量 统计当前带宽\峰值带宽 统计总请求数量1. 安装 # cd /usr/local/src/ # wget "http://nginx.org/download/nginx-1

Apache和IIS共享80端口的四个设置方法_网站应用

方法一:IIS5,多IP下共存,IIS为192.168.0.1,apache为192.168.0.2c:\Inetpub\Adminscriptscscript adsutil.vbs set w3svc/disablesocketpooling true该命令反馈如下disablesocketpooling : (BOOLEAN) True重启IISInetpub\AdminScripts>cscript adsutil.vbs set w3svc/disablesocketpooling t

nginx 目录密码保护的设置方法_nginx

那么 在 nginx.conf 文件中对应的 server 段中 添加 location ^~ /test/ { auth_basic TEST-Login; auth_basic_user_file /root/htpasswd; 再在 root 的主目录中 /root/ 创建一个新文件 htpasswd 此文件的书写格式是 用户名:密码 每行一个账户 并且 密码必须使用函数 crypt(3) 加密 官方档说 可以用 Apache 的 htpasswd 工具来创建密码文件 当然也可以使用per