FreeBSD - Apache - http accept filter
Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2024
FreeBSD - Apache - как включить и для чего http accept filter
http accept filter - фильтр приема
- для длинных запросов - буферизирует http трафиик в ядре
Во FreeBSD имеется технология, позволяющая передавать пакет от ядра к процессу только в случае прихода 1) каких либо данных 2) валидного http запроса. Технология эта называется accept filters. Такие фильтры помогут как разгрузить сервер в случае большого кол-ва соединений, так и немного защитить от DDoS'a (Хотя со вторым лучше справляется ngx_http_limit_req_module)
Чтобы включить обработку соединений с использованием фильтров, нужно для начала загрузить модуль ядра:
# ls /boot/kernel/|grep acc accf_data.ko accf_http.ko # kldload accf_http
Далее в конфиге nginx.conf включить фильтр httpready:
listen 80 default accept_filter=httpready;
Включение
В ядро добавляем:
options ACCEPT_FILTER_HTTP # для http options ACCEPT_FILTER_DATA # для https options INET # должно быть по дефолту
либо ручками
% kldload accf_data % kldload accf_http
либо добавить строчку
apache22_http_accept_enable="YES"
в файле rc.conf
либо в писать в /boot/loader.conf:
%grep accf /boot/defaults/loader.conf accf_data_load="NO" # Wait for data accept filter accf_http_load="NO" # Wait for full HTTP request accept filter
Links