nginx: como permitir mais de uma sessão por cliente

1

Por padrão, o Nginx espera que a sessão seja fechada até que abra uma nova sessão. isso é um problema se um usuário tentar baixar mais de um arquivo de uma só vez.

Como desativar ou ultrapassar o limite?

o que eu tentei:

changing  rate=1r/s to rate=100r/s  
limit_req_zone  $binary_remote_addr  zone=one:10m   rate=1r/s;

nginx conf:

server {
    #limit_conn addr 3;
    #limit_rate_after 2048k;
    #limit_rate 300k;
    listen 213.186.127.53:80;
    server_name  site.com;
    access_log off;
    #access_log  /var/log/nginx/site.com.access.log  main;
    error_log   /var/log/nginx/site.com.error.log  crit;
    #open_file_cache max=3000 inactive=120s;
    #open_file_cache_valid 30s;
    #open_file_cache_min_uses 2;
    #open_file_cache_errors off;
            location / {
                 valid_referers none blocked site.com *.site2.com site3.net *.prozerpina.net;
                 if ($invalid_referer) {
                    return   403;
                }
                    root /var/www/site.com;
                            aio on;
                            directio  4k;
                            directio_alignment 4k;
                            output_buffers 1 1m;

            }

http {
    access_log  /var/log/nginx/access.log  main;
    client_max_body_size 2005m;
    server_names_hash_bucket_size 64;
    client_body_temp_path /tmp;
    client_body_in_file_only clean;
#    limit_conn_zone $binary_remote_addr zone=addr:10m;
    send_timeout 30;
    keepalive_timeout 60;
    proxy_buffering off;
    tcp_nodelay    on;
    log_not_found on;
    tcp_nopush     off;
    sendfile off;
    reset_timedout_connection on;
    limit_req_zone  $binary_remote_addr  zone=one:10m   rate=1r/s;
    index  index.php  index.html;

}
    
por teslasimus 10.12.2012 / 03:59

1 resposta

0

A alteração de rate=1r/s para rate=100r/s deve funcionar, a menos que seu cliente precise de mais de 100 solicitações por segundo para fazer download de dois arquivos. Normalmente, baixar 2 arquivos requer 2 conexões.

No entanto, para mim, usar a limitação de taxa para limitar o número de conexões simultâneas é usar a ferramenta errada. Você tem algo chamado limit_conn que limita as conexões, não as taxas. Funciona da mesma maneira, pois você pode definir a zona para endereços IP do cliente. Você decide então o limite, que é um número bruto.

Mais uma vez, esses são dois problemas diferentes: a taxa de conexão e a quantidade não devem ser confundidas, embora possam interferir umas nas outras.

Tente desativar a limitação de taxa e use a limitação de conexão com duas conexões por cliente. Garanta que seu cliente funcione corretamente.

Em seguida, convém reinstalar a limitação de taxa, cuidando para que ela não interfira no uso do cliente. Você pode querer permitir rajadas de conexão se o limite de sua taxa for baixo. Use, em seguida, logs em conexões com falha para saber se limit_conn ou limit_req é responsável por isso.

    
por 05.11.2014 / 11:54

Tags