Apache 与 Nginx 配置限制IP并发访问连接数

2021/4/28 7:25:11

本文主要是介绍Apache 与 Nginx 配置限制IP并发访问连接数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

一、Apache 配置

将 Apache 服务器做对同一 IP 的限制连接限制,需要 mod_limitipconn 来实现。一般需要手动编译。不过模块作者也提供了一些编译好的模块,根据自己的 Apache 版本可以直接使用。

1、编译方式(编译mod_limitipconn 模块)

wget http://dominia.org/djao/limit/mod_limitipconn-0.24.tar.bz2
tar xf mod_limitipconn-0.24.tar.bz2
cd mod_limitipconn-0.24apxs -c -i -a mod_limitipconn.c

注意: 上面代码中的apxs是一个命令,你没有配置的话,他们执行不了,需要你找到这个文件所在的路径然后将 apxs 替换成 /www/server/apache/bin/apxs -c -i -a mod_limitipconn.c,那我自己的服务器举例子,apxs文件在apache的bin目录下寻找。

注意:该步会自动将mod_limitipconn.so模块编译到apache对应的modules中,还会在http.conf文件中自动添加loadmodules语句

1、确保加载了mod_status模块
2、确保ExtendedStatus On
3、配置

2、编辑 httpd.conf 文件(记得重启 Apache )

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

叮嘱2句:上面代码 /www/server/apache/modules/mod_limitipconn.so,这一块一定要确保你已经编译mod_limitipconn模块,在 Apache 配置文件中,你搜一下 一般编译成功都会自动引入,记住哈!!!

上述 Apache 配置亲测有效,下面Nginx为测试,出自于同一个作者手里,应该没问题

二、Nginx 配置

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

编辑 nginx.conf 文件

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 与 Nginx 配置限制IP并发访问连接数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程