Закрыть доступ по IP nginx?

Возникла необходимость сделать недоступным сайт с внешнего IP (http://12.34.56.78).
То есть, доступным только доменному имени.
Как это лучше всего реализовать?
  • Вопрос задан
  • 5072 просмотра
Решения вопроса 1
dimonchik2013
@dimonchik2013
non progredi est regredi
server {
listen 80 default_server;
server_name _;
return 444;
}

вместо 444 можно какой-нибудь "бэндвич лимит"

P.S. варианты с перечислением доменов ( как у коллег в ответах) аукнутся при добавлении сабдоменов и не только
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Erelecano
Админю сервера, починяю примуса.
if ($host !~* ^(domain.tld|www.domain.tld|abc.domain.tld)$ ) {
                return 444;
        }


В конфиге для вашего домена будет посылать к лягушачьей бабушке всех кто пришел за чем-то отличным от имен указанных в скобках. Что заход по IP, что резолв вашего IPшника во что-то еще.
У меня такой конструкцией снабжен конфиг для каждого домена. Таким образом отсекаю все лишние обращения.
Ответ написан
Комментировать
@mureevms
Сделать редирект с IP на домен, примерно так:
server {
        listen 12.34.56.78:80;
        server_name example.com www.example.com;
location / {
        rewrite ^(.*)$ http://example.com$1 break;
        }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы