Задать вопрос

Как лучше защитить web сервер — Apache или Nginx ?

Допустим есть java webapp на Tomcat сервере.
Хочу поставить защиту от DoS, фильтр корректных http запросов, лимиты по подключениям с одного IP и др. способы защиты.

Что посоветуете в этом случае — Apache или Nginx?
  • Вопрос задан
  • 6741 просмотр
Подписаться 27 Оценить 1 комментарий
Ответ пользователя iandriyanov К ответам на вопрос (7)
iandriyanov
@iandriyanov
Ставить Apache и Фронт Джинкса.

nGinx заюзать под:

http {
# даже обычные медленные клиенты, обычно дороги
reset_timedout_connection on;
client_header_timeout 15;
client_body_timeout 15;
send_timeout 5;
keepalive_timeout 30 15;

# введем две зоны ограничений.
# По открытым соединениям и по request rate
limit_req_zone $binary_remote_addr zone=qglob:16m rate=3r/s;
limit_zone cglob $binary_remote_addr 16m;

server {
listen 80;
server_name www.myhost.ru;

proxy_set_header Host $host;
# необходимо для работы proxy_store
proxy_buffering on;

# ограничим максимальное количество соединений с одного ip
# до 4х клиентов с одного ip по rfc2616
limit_conn cglob 32;

# Быстро отлавливаем “GET / “.
# Дописываем удобное имя файла.
location = / {
rewrite ^/$ /index.html last;
}

#Пост-рейт отдача статического index.html или загрузка с бэкенда.
location = /index.html {
internal;
limit_req zone=qglob burst=9 nodelay;
open_file_cache_errors off;
root /tmp/nginx/cache/;
error_page 404 = /cached$uri;
}


location /cached/ {
internal;
alias /tmp/nginx/cache/;
proxy_pass phpfarm;
proxy_store on;
proxy_store_access user:rw group:rw all:r;
proxy_temp_path /tmp/nginx/tmp/;
}

#Жестоко зажатый на два запроса в секунду поиск.
location = /advanced_search_result.php {
limit_req zone=qulag burst=2;
proxy_pass phpfarm;
}

# И все остальное.
location / {
proxy_pass phpfarm;
}
}
}

Еще можно покурить в сторону sysctl и pf (ipfw)
Ответ написан