Делаем веб сервер крепким и производительным! Часть 2 — Защита

В продолжении темы о связке Nginx и Apache (начало)

Небольшие советы по защите вашего веб-сервера от разного рода атак:

1) набор настроек: client_body_buffer_size, client_header_buffer_size, client_max_body_size, large_client_header_buffers, client_body_temp_path — посмотрите документацию на nginx.ru и подберите свои значения

2) Защита от DDoS

Нам необходимо защититься от массовых запросов и от массовых подключений! Для этого мы настроем:

  • limit_req_zone $binary_remote_addr zone=one:10m rate 64r/s; — количество запросов к странице в секунду (64) + для хранения данных о запросах мы отводим 10 Mb
  • limit_zone two $binary_remote_addr 10m; — для хранения данных о подключениях мы отводим 10 Mb

В настройке вашего сервера внесите следующее:

server {

listen xx.xx.xx.xx:80;

server_name domainname.ru *.domainname.ru;

limit_req zone=one burst=196 nodelay;

limit_conn two 12;

..

}

  • limit_req задает использование правила для запросов, где 196 — максимальное их число на одно соединение
  • limit_conn задает максимальное количество соединений от одного клиента

3) Закрываем сам сервер

server {

listen 80 default rcvbuf=16384 sndbuf=16384 backlog=3200 accept_filter=httpready;

server_name localhost;

deny all;

}

Одно обещаю точно — ресурсов вашего сервера хватит на очень долго 🙂

Продолжение следует..

HTTP, UNIX