zoukankan      html  css  js  c++  java
  • Nginx tcp限制并发、IP、记日志

    L:114

     

    Syntax: limit_conn_zone key zone=name:size;//类似http limit_conn 需要开个共享内存  zone=name(共享内存名称):size(共享内存大小);
    Default:
    Context: stream
    limit_conn_zone $binary_remote_addr zone=addr:10m;
    server {
        ...
        limit_conn addr 1;
    }
    Syntax: limit_conn_log_level info | notice | warn | error;
    Default:
    limit_conn_log_level error;
    Context: streamserver

    Syntax:limit_conn zone number; //上面配置的zone名称 限制并发连接数量 
    Default:—

    Context:streamserver

    类似http access访问阶段

    Syntax: allow address | CIDR | unix: | all; 通过设置允许的ip地址
    Default:
    Context: streamserver
    Syntax: deny address | CIDR | unix: | all; 不允许
    Default:
    Context: streamserver
    server {
        ...
        deny  192.168.1.1;
        allow 192.168.1.0/24;
        allow 10.1.1.0/16;
        allow 2001:0db8::/32;
        deny  all;
    }

    log阶段:stream_log模块

    Syntax: access_log path format [buffer=size] [gzip[=level]] [flush=time] [if=condition];
    access_log off;
    Default:
    access_log off;
    Context: streamserver
    Syntax: log_format name [escape=default|json|nonestring ...;
    Default:
    Context: stream
    log_format proxy '$remote_addr [$time_local] '
                     '$protocol $status $bytes_sent $bytes_received '
                     '$session_time "$upstream_addr" '
                     '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';
    Syntax: open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
    open_log_file_cache off;
    Default:
    open_log_file_cache off;
    Context: streamserver

    nginx.conf指令演示

    server {
                    listen 10004 proxy_protocol; #这里开启了协议
            set_real_ip_from 192.168.0.51;
                    allow 202.112.144.236; #通过protocol协议 允许该ip访问
                    deny all; #禁用所有IP
                    return '10004 vars:
    bytes_received: $bytes_received
    bytes_sent: $bytes_sent
    proxy_protocol_addr: $proxy_protocol_addr
    proxy_protocol_port: $proxy_protocol_port
    remote_addr: $remote_addr
    remote_port: $remote_port
    realip_remote_addr: $realip_remote_addr
    realip_remote_port: $realip_remote_port
    server_addr: $server_addr
    server_port: $server_port
    session_time: $session_time
    status: $status
    protocol: $protocol
    ';
            }
    [root@3 conf]# telnet 192.168.0.51 10004
    Trying 192.168.0.51...
    Connected to 192.168.0.51.
    Escape character is '^]'.
    PROXY TCP4 202.112.144.236 10.210.12.10 5678 80
     //这里输入了202.112.144.236地址表示 这样就允许访问了
    10004 vars:
    bytes_received: 0
    bytes_sent: 0
    proxy_protocol_addr: 202.112.144.236 //查看返回结果 
    proxy_protocol_port: 5678
    remote_addr: 202.112.144.236
    remote_port: 5678
    realip_remote_addr: 192.168.0.51
    realip_remote_port: 49256
    server_addr: 192.168.0.51
    server_port: 10004
    session_time: 2.452
    status: 000
    protocol: TCP
    Connection closed by foreign host.
  • 相关阅读:
    用魔数防范文件上传攻击
    nginx http跳转到https
    tengine安装
    版本标记说明
    nginx基于域名的虚拟主机 反向代理配置实例
    非ROOT用户启动Tomcat
    使用druid连接池的超时回收机制排查连接泄露问题
    Jenkins入门系列之
    centos7 关闭SELINUX 防火墙
    mac安装IE浏览器
  • 原文地址:https://www.cnblogs.com/jackey2015/p/10587018.html
Copyright © 2011-2022 走看看