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

Тема в разделе "Администрирование серверов", создана пользователем itpeople, 1 июн 2015.

Модераторы: mefish, stooper
  1. itpeople

    itpeople

    Регистр.:
    6 дек 2007
    Сообщения:
    546
    Симпатии:
    62
    Есть VPS сервер, только настроен администратором, на нем развернут новый сайт, который находится в процессе разработки.
    Нужно просто закрыть доступ со всех ip кроме нескольких. Вроде гугл выдает что достаточно добавить в nginx.conf такие правила:
    location / {
    allow 127.0.0.1;
    deny all;
    }
    После nginx -s reload продолжаю свободно доступаться до сайта. Раньше имел дело только с htaccess и там все просто было, сейчас не могу разобраться. Перывый раз трогаю nginx.

    На сервере есть два конфига nginx.conf - один лежит в /etc/nginx/, второй в корне сайта (в папке public_html).
    Пробовал вписывать в оба файла, но всеравно сайт открывается. Подскажите пожалуйста, что не так делаю?
     
  2. metsys

    metsys

    Регистр.:
    27 апр 2014
    Сообщения:
    382
    Симпатии:
    386
    какая ОС? (пути могут отличаться)
    панель управления есть какая то?
    в центе есть путь /etc/nginx/conf.d/site.conf куда обычно кладут конфиг каждого сайта, а не валят в кучу в /etc/nginx/nginx.conf
    да и конфиг вашего сайта неплохо было бы привести для пущего разумения (для каждого движка могут быть индивидуально настроены локейшены или вы его ваще как прокси юзаете).
    да и куда одмин то делся - ему это 2 минуты вписать как бы.
     
    itpeople нравится это.
  3. itpeople

    itpeople

    Регистр.:
    6 дек 2007
    Сообщения:
    546
    Симпатии:
    62
    Centos 7x64, путь /etc/nginx/conf.d/ есть но там пусто.
    Панель управления ISP Manager



    прописывал в http

    И это то что в конфиге в корне сайта:
     
  4. metsys

    metsys

    Регистр.:
    27 апр 2014
    Сообщения:
    382
    Симпатии:
    386
    поскольку у вас Панель управления ISP Manager то конфиги сайтов скорее всего будут тут : include /etc/nginx/vhosts/*/*; (судя по тому конфигу что вы выложили)
    а значит лезть туда и там чего то менять из консоли не есть хорошо (а скорее всего они будут переписаны при следующей активности в панели)
    Вывод - идите в Панель управления ISP Manager и там ищите конфигурацию nginx для сайта (панель плохо знаю, но скорее в настройках параметров окружения сайта) и добавляйте что вам нужно
     
    Sorcus, latteo и itpeople нравится это.
  5. itpeople

    itpeople

    Регистр.:
    6 дек 2007
    Сообщения:
    546
    Симпатии:
    62
    Именно то что нужно, последней строчкой этот инклуд спрятался, дошло теперь как оно работает, хотя не понял еще почему не работало через основной конфиг, буду разбираться. Спасибо, все ок теперь.
     
  6. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.404
    Симпатии:
    1.185
    location добавляется в server при чём для того хоста, по которому заходите. Ищите его по путям etc/nginx/vhosts/*/*; или /etc/nginx/vhosts-includes/*.conf;
    Если в файле несколько location, правило блокировки добавляйте во все.

    Будет здорово, если есть более оптимальный путь это сделать, но у меня получилось только так, но зато без гугла ;)
     
  7. balinese

    balinese Создатель

    Регистр.:
    17 мар 2014
    Сообщения:
    19
    Симпатии:
    4
    вообще-то в centos + ispmanager настройки виртуалхостов лежат в /etc/nginx/nginx.conf, так что ищите там свой домен и подставляйте значение .
    и да, рекомендованно перегружать nginx через service nginx restart
     
    Последнее редактирование: 2 июн 2015