Este artigo compartilha principalmente com você o método de configuração do Nginx para evitar ataques de tráfego. O artigo fornece uma introdução detalhada e um código de exemplo de configuração, que tem certa referência e valor de aprendizado para todos. Amigos que precisam podem dar uma olhada abaixo.
Todo mundo sabe que os recursos do servidor são limitados, mas as solicitações dos clientes são ilimitadas (ataques maliciosos não estão excluídos). Para garantir que a maioria das solicitações possa responder normalmente, temos que desistir de algumas solicitações dos clientes, por isso usaremos o Nginx. Atual limitar a operação pode aliviar bastante a pressão no servidor e permitir que outras solicitações normais recebam respostas normais.
Como usar o Nginx para implementar a limitação básica de corrente, como limitar um único IP a 50 acessos por segundo. Através do módulo de limitação de corrente Nginx, podemos definir que assim que o número de conexões simultâneas exceder nossa configuração, um erro 503 será retornado ao cliente. Isto pode ser muito eficaz na prevenção de ataques CC. Juntamente com o firewall iptables, os ataques CC podem basicamente ser ignorados. Vamos dar uma olhada na introdução detalhada:
Como usar
configuração conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
configurar erro 503
Por padrão, se o limite for excedido, um erro 503 será relatado, solicitando:
1 2 3 4 |
|
Não há nada de errado com esta exibição, mas ela não é amigável o suficiente. Aqui personalizamos o erro 503.
1 2 3 4 |
|
Instruções de configuração
limit_conn_zone
Um contêiner é definido para cada IP para armazenar o status da sessão. Este exemplo define um contêiner de 100 m, que pode lidar com 3.200.000 sessões com base em 32 bytes/sessão.
limit_rate 300k;
Limite a velocidade de cada conexão a 300 K. Observe que este é o limite de velocidade da conexão, não o limite de velocidade do IP. Se um IP permitir duas conexões simultâneas, então o IP será limitado a limit_rate×2.
burst=5;
Isto equivale a colocar 5 assentos próximos ao posto de controle requerido. Se uma solicitação for interrompida por ultrapassar o limite de velocidade do momento, peça para ele sentar em uma cadeira vazia e aguardar na fila, e se o posto de controle estiver vazio, ele poderá passar. Mesmo que as vagas estejam ocupadas, sinto muito, a solicitação é retornada diretamente e o cliente recebe uma resposta de que o servidor está ocupado. Portanto, burst não tem nada a ver com request_rate. Se for definido como 10.000, 10.000 solicitações podem ser enfileiradas, mas o ponto de verificação ainda libera 5 solicitações por segundo (velocidade lenta). E você não pode ficar na fila o tempo todo, então o nginx também define um tempo limite.Se a fila ultrapassar um determinado período de tempo, ela retornará diretamente e retornará a resposta de que o servidor está ocupado.
以上配置Nginx需要配置以下模块:
1 2 |
|
执行命令 nginx -V
就可以检查到是否有安装。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助