LINUX.ORG.RU

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

 


0

2

Здравствуйте. Прошу помочь написать директиву в 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 ★★★★★
()
6 июня 2025 г.

Разместить выше location ~ .php$ { …

# bitrixadmin
location ~ /bitrix/admin/.+\.php$ {
	try_files $uri =404;
	include fastcgi_params;
	fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	fastcgi_param SCRIPT_NAME $fastcgi_script_name;
	fastcgi_param REMOTE_USER $http_authorization;
	allow 34.206.204.40; # bitrix monitoring
	allow 54.220.87.80; # bitrix monitoring
	allow 192.168.1.2;
	deny all;
}
User77
()