Модуль ngx_http_referer_module
| Пример конфигурации Директивы referer_hash_bucket_size referer_hash_max_size valid_referers Встроенные переменные  | 
Модуль ngx_http_referer_module позволяет блокировать доступ
к сайту для запросов с неверными значениями поля “Referer” в
заголовке.
Следует иметь в виду, что подделать запрос с нужным значением поля
“Referer” не составляет большого труда, поэтому цель
использования данного модуля заключается не в стопроцентном блокировании
подобных запросов, а в блокировании массового потока запросов, сделанных
обычными браузерами.
Нужно также учитывать, что обычные браузеры могут не передавать поле
“Referer” даже для верных запросов.
Пример конфигурации
valid_referers none blocked server_names
               *.example.com example.* www.example.org/galleries/
               ~\.google\.;
if ($invalid_referer) {
    return 403;
}
Директивы
| Синтаксис: | 
            referer_hash_bucket_size  | 
                
|---|---|
| Умолчание: | 
            referer_hash_bucket_size 64;  | 
                
| Контекст: | 
            server, location | 
                
Эта директива появилась в версии 1.0.5.
Задаёт размер корзины хэш-таблиц со значениями “Referer”. Подробнее настройка хэш-таблиц обсуждается в отдельном документе.
| Синтаксис: | 
            referer_hash_max_size  | 
                
|---|---|
| Умолчание: | 
            referer_hash_max_size 2048;  | 
                
| Контекст: | 
            server, location | 
                
Эта директива появилась в версии 1.0.5.
Задаёт максимальный размер хэш-таблиц со значениями
“Referer”.
Подробнее настройка хэш-таблиц обсуждается в отдельном
документе.
| Синтаксис: | 
            valid_referers 
     | 
                
|---|---|
| Умолчание: | — | 
| Контекст: | 
            server, location | 
                
Задаёт значения поля “Referer” заголовка запроса, при
которых встроенная переменная $invalid_referer будет иметь
пустую строку в качестве значения.
В противном случае значение переменной равно “1”.
Поиск совпадения производится без учёта регистра символов.
Параметры могут быть следующие:
none- поле “Referer” в заголовке запроса отсутствует;
 blocked- 
поле “Referer” в заголовке запроса присутствует,
но его значение удалено межсетевым экраном (firewall) или прокси-сервером;
к таким значениям относятся строки, не начинающиеся на
“
http://” или “https://”; server_names- в поле “Referer” заголовка запроса указано одно из имён сервера;
 - произвольная строка
 - 
задаёт имя сервера и необязательное начало URI.
В начале или конце имени сервера может быть “
*”. При проверке порт сервера в поле “Referer” игнорируется; - регулярное выражение
 - 
в начале должен быть символ “
~”. Необходимо учитывать, что на совпадение с выражением будет проверяться текст, начинающийся после “http://” или “https://”. 
Пример:
valid_referers none blocked server_names
               *.example.com example.* www.example.org/galleries/
               ~\.google\.;
Встроенные переменные
$invalid_referer- 
Пустая строка, если значение поля “Referer” заголовка запроса
считается
правильным, иначе “
1”.