LINUX.ORG.RU

Разрешить админку через nginx только для одного IP

 


0

1

Здравствуйте. Прошу помочь написать директиву в nginx, чтобы в админку моего сайта на bitrix можно было попасть с одного IP (сервер nginx+php-fpm без apache)

В нормальных условиях если в браузере писать site.ru/bitrix,то ссылка превратиться в site.ru/bitrix/admin/index.php#authorize.

Пробовал написать

location /bitrix/admin/ {
  allow      1.1.1.1;
  deny       all;
}

Но ничего не выходит. Может не верно что написано, а может вставляю не туда. Замучался, помогите, пожалуйста.

В действующем конфиге есть следующие секции location:

location / {
  location ~ [^/]\.ph(p\d*|tml)$ {
     try_files /does_not_exists @php;
  }

  if (!-e $request_filename) {
     rewrite  ^(.*)$  /bitrix/urlrewrite.php last;
  }
}



Последнее исправление: DenNC (всего исправлений: 2)

Ты явно не весь конфиг прислал, если б там было только указанное то после добавления твоей локи админка бы вообще сломалась.

Основная твоя проблема такова: ты считаешь, что если к одному запросу подходят несколько локаций одновременно, то они все будут обработаны. Это не так, локация (на верхнем уровне), выбирается одна подходящая, и содержимое всех остальных после этого значения не имеет. подробнее тут

firkax ★★★★★
()

У меня так было. Работало и ладно, дальше я не оптимизировал

server {
...

   set $deny_access off;

    if ($remote_addr !~ 11.12.13.14) {
            set $deny_access on;
    }
    if ($uri ~ "^/admin/" ) {
            set $deny_access on$deny_access;
    }
    if ($deny_access = onon) {
            return 403;
    }
...
}
futurama ★★★★★
()