nginx limitando o redirecionamento

1

Usamos o nginx para redirecionar qualquer solicitação http para a conexão https. Portanto, embora o usuário faça a conexão http, o nginx redirecionará para a conexão https.

Aqui o nginx tem um limite que pode lidar com apenas 'n' re-direções por segundo. Porque o nosso aplicativo é acessível por outro sistema e eles fariam solicitações http sempre intencionalmente. Portanto, o nginx tem que redirecionar todos os pedidos de http para https, mas não pode lidar com muitos pedidos de cada vez.

Mas se fizermos solicitações https, ele poderá lidar com muitos números de solicitações por segundo, já que não exige nenhum redirecionamento. Abaixo está nossa configuração

server {
    listen   6000;                                          ## listen for ipv4; this line is default and implied
    #listen   [::]:80 default ipv6only=on;                  ## listen for ipv6
    server_name     someDomain.com;

    rewrite        ^ https://$server_name$request_uri? ;

    #root /usr/share/nginx/www;
    index index.html index.htm;
}
    
por Selvakumar P 27.05.2014 / 13:39

1 resposta

1

Você precisa usar a diretiva limit_req .

http
{
    limit_req_zone $binary_remote_addr zone=zonename:100m rate=25r/s;
    server
    {
        limit_req zone=zonename burst=5;

$binary_remote_addr limita cada IP para 25 solicitações por segundo rate=25r/s

Você pode adicionar nodelay a limit_req para responder com um 503 assim que o limite for atingido.

    
por 27.05.2014 / 14:42