通过ngx_stream_limit_conn_module限制长连接的并发数

最近要迁移云服务器,以前使用的云服务器有个防火墙。通过这个防火墙来限制每个IP跟我业务的最大连接数。这个防火墙目前每年的费用是2k+,但是新的云服务商提供的相同产品,每年费用要2w+。
这事我肯定不能忍,本来迁移云服务供应商就是为了能省点钱,不能收之桑榆失之东隅呀。
前几年有次出差,听合作伙伴的技术提起过,可以通过nginx实现四层通信的连接数限制。为了降低成本,我打算试试。经过一番周折,还真练成了。配置文件如下:

stream {

    limit_conn_zone $binary_remote_addr zone=addr:10m;

    upstream Port_7890 {
        server 192.168.3.3:7890;
        server 192.168.3.15:7890;
    }

    server {
        listen 7890;
        proxy_timeout 20s;
        proxy_pass Port_7890;

        limit_conn addr 20;
        limit_conn_log_level error;

    }
}

说明:
$binary_remote_addr      是限制同一客户端ip地址;
$server_name      是限制同一server最大并发数;
limit_conn      为限制并发连接数;
limit_rate      为限制下载速度;

limit_conn addr 20;      最大并发数;
limit_conn_log_level error;      错误日志;

猜你喜欢

转载自blog.csdn.net/ziele_008/article/details/105839132
今日推荐