nginx - блокировка по user agent для всех сайтов сразу

Garin33
На сайте с 31.08.2009
Offline
169
6954

Добрый день.

На VPS установлен apache+nginx (фронтэнд).

Как можно заблокировать доступ к серверу по юзер агенту для всех сайтов сразу? То есть без добавления кода для каждого виртуального хоста

if ($http_user_agent ~ "wget") {
return 403;
}

Попробовал создать файл block.conf с этим же кодом, и приинклудить в конфигурации nginx - include /etc/nginx/block.conf;

Но при перезарузке выдается следующее и nginx не стартует

"if" directive is not allowed here in /etc/nginx/block.conf:1 nginx.

Как решить такую проблему правильно?

Потому что Drupal - это круто.
Nanotik
На сайте с 20.11.2010
Offline
27
#1
Garin33:
Добрый день.

На VPS установлен apache+nginx (фронтэнд).
Как можно заблокировать доступ к серверу по юзер агенту для всех сайтов сразу? То есть без добавления кода для каждого виртуального хоста


Попробовал создать файл block.conf с этим же кодом, и приинклудить в конфигурации nginx - include /etc/nginx/block.conf;

Но при перезарузке выдается следующее и nginx не стартует


Как решить такую проблему правильно?

Потому что условия в nginx надо прописывать в секции server. Если вы прописываете их в секции http, то работать они не будут, и, соответственно, nginx при старте будет "ругаться".

Поэтому выход один - только если добавить условие в server для каждого сайта в начало секции после определения server_name.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий