Назад | Перейти на главную страницу

nginx ограничивает доступ к каталогам по ip

Я использую nginx и хочу ограничить доступ к каталогу для всех, кроме себя. Я хочу получить доступ к скриптам php в / ограничено. Я пробовал пока кое-что. Если я помню, это работает, чтобы заблокировать доступ ко всем, кроме разрешенного IP, но все скрипты загружаются, а не обрабатываются сейчас.

location ~ /restricted { allow 1.2.3.4; deny all; }

Вам понадобится второй (я предпочитаю вложенный) php-блок, так как вы хотите, чтобы эти php-файлы обрабатывались по-другому. Кроме того, предполагая, что / ограниченный должен быть префиксом uri, а не просто чем-то, что появляется где-либо в uri, вам нужен другой тип местоположения:

# This handles everything that starts with /restricted,
# and no regex locations will override it
location ^~ /restricted {
  allow 1.2.3.4;
  deny all;

  # This will inherit the allow/deny from the outer location
  location ~ \.php$ {
    include fastcgi.conf;
    fastcgi_pass backend;
  }
}