W tym poście nie rozpiszę się zbytnio - wrzucam tylko config od którego zaczynam konfigurację nginx’a.

user www-data;
worker_processes  4;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;

    ## zaakceptuj tak dużo połączeń jak to możliwe
    multi_accept on;

    ## epoll jest preferowany na jajkach od 2.6
    ## http://www.kegel.com/c10k.html#nb.epoll
    use epoll;
}

http {
    include     /etc/nginx/mime.types;
    default_type application/octet-stream;
    access_log  /var/log/nginx/access.log;
    error_log   /var/log/nginx/error.log;

    ## opcje TCP
    sendfile        on;
    tcp_nopush      on;
    tcp_nodelay     on;

    ## maksymalny rozmiar zapytnia
    client_max_body_size 10m;

    ## timeout'y
    client_body_timeout     60;
    client_header_timeout   60;
    keepalive_timeout       10;
    send_timeout            60;

    ## kompresja
    gzip            on;
    gzip_static     on;
    gzip_vary       on;
    gzip_disable    "msie6";
    gzip_comp_level 1;
    gzip_proxied    any;
    gzip_buffers    16 8k;
    gzip_min_length 50;
    gzip_types      text/plain text/css application/json application/x-javascript application/javascript text/javascript application/atom+xml application/xml application/xml+rss text/xml image/x-icon text/x-js application/xhtml+xml;

    ## bezpieczeństwo
    ## security by obscurity - ukrywamy wersję nginx'a
    server_tokens off;
    ignore_invalid_headers on;
    ## resetuj zbyt długie połączenia - powinno pomóc na slowlorisa
    reset_timedout_connection on;

    ## włączenie ochrony przed clickjackingiem - uruchamiam to per vhost
    ## https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header
    #add_header X-Frame-Options SAMEORIGIN;

    ## potrzebne zeby zbudowac mape ponizej
    map_hash_bucket_size 256;
    ## blacklist'a botów i referer'ów
    include blacklist.conf;

    ##
    # jeśli połączenie na HTTPS'a to ustawiamy zmienną by mogło być obsłużone
    ##
    map $scheme $server_https {
        default off;
        https on;
    }

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

No i jeszcze zawartość blacklist.conf - na początek wystarczy a można rozszerzyć pod siebie:

## blokowanie agentów
map $http_user_agent $bad_bot {
    default 0;
    libwww-perl                      1;
    ~(?i)(httrack|htmlparser|libwww) 1;
}

## blokowanie refererów
map $http_referer $bad_referer {
    default 0;
    ~(?i)(babes|click|diamond|forsale|girl|jewelry|love|nudit|organic|poker|porn|poweroversoftware|sex|teen|webcam|zippo|casino|replica) 1;
}