nginx: Заглушка на сайте для определенных IP адресов

  • Автор:
  • Опубликовано:
  • Изменено:
  • Просмотры: 1 211
  • Комментарии: 0
  • Рейтинг: 86,67%
  • Голосов: 3

Допустим захотели вы вывести страницу с сообщением о блокировке определенному ip адресу или просто решили повесить заглушку о проводимых технических работах на сайте. Сделать это можно следующим образом:

1. Открываем файл конфигурации вашего сайта. В Debian/Ubuntu они лежат в папке /etc/nginx/sites-enabled.

2. Добавляем в самый верх конфига:

geo $block {
	default yes;
	1.2.3.4/32 no; 
}

Данный кусок конфигурации устанавливает по умолчанию значение переменной $block в "yes", и устанавливает значение "no" для ип адреса 1.2.3.4.

3. Ищем в конфиге строчку начинающуюся с "location / {" и вносим туда небольшие дополнения:

location / {
			if ($block = yes) {
			set $action close;
			}
			if ($action = close) {
			return 503;
			}

Здесь идет проверка - если для клиента, который обратился к нашему веб-серверу значение $block равно yes (а это в свою очередь устанавливается в пункте 2), то значение переменной $action будет равно close. В свою очередь, если переменная $action равна close, то сервер возратит клиенту ошибку 503 ("сервис недоступен").

4. В конце конфига, перед последней закрывающей скобкой } добавляем:

        error_page 500 502 503 504 /block.html; 
		location = /block.html { 
		root /var/www;
		}

Вместо block.html следует указать название вашего файла, который должен отображаться пользователю, который будет получать ошибку 503. /var/www следует заменить директорией, в которой находится html файл с заглушкой.

Оценить статью

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
Голосов: 3, Оценка: 4,33 из 5,00

Добавить комментарий

Ваш e-mail не будет опубликован.

Читайте ранее:
tcpdump: Мониторим весь трафик кроме некоторых портов
foobar2000: Проигрывание музыки с CD и получение тегов с freedb.org
MySQL: Только локальный доступ к серверу
Windows Server: Отключение регистрации событий завершения работы
Windows Server 2008 R2: Отключение конфигурации усиленной безопасности Internet Explorer.
Закрыть