Page 1 of 1

NGINX - защита папки паролем

Posted: Tue Feb 28, 2017 3:32 pm
by elenix
Добрый день!
Раньше сидел на Apache, а сейчас переехал на другой VPS, а заодно обновил панель и установил в режиме php-fpm-nginx

Мне как обычному продвинутому пользователю всего хватает в Vesta CP за что огромное спасибо разработчикам, что разрешаете пользоваться ней бесплатно, успехов Вам и всего самого самого)))).

В апаче защищал папки через htaccess там как бы все просто. Сейчас нужно запаролить некоторые директории типа админок Wordpressa и просто некоторых личных хранилищ. Я как обычно привык делать OK GOOGEL и вперед.... но. по первому же мануалу ничего сделать не удалось, а именно указано было добавить в файл конфига nginx такой код заменив понятно параметры на свои:

Code: Select all

location ^~ /folder/ {
    auth_basic            "Restricted Area";
    auth_basic_user_file  conf/htpasswd;
}
Файл паролей я создал, все прописал и т.д., воткнул этот код в файл и NGINX не стартует((((. Код я воткнул просто в самом конце файла отступив пару строчек. Помогите пожалуйста, для полного счастья с VESTA CP не хватает только этого...

Re: NGINX - защита папки паролем

Posted: Tue Feb 28, 2017 7:46 pm
by skurudo
elenix wrote:Мне как обычному продвинутому пользователю всего хватает в Vesta CP за что огромное спасибо разработчикам, что разрешаете пользоваться ней бесплатно, успехов Вам и всего самого самого)))).
Спасибо на добром слове :)
elenix wrote:

Code: Select all

location ^~ /folder/ {
    auth_basic            "Restricted Area";
    auth_basic_user_file  conf/htpasswd;
}
Файл паролей я создал, все прописал и т.д., воткнул этот код в файл и NGINX не стартует((((. Код я воткнул просто в самом конце файла отступив пару строчек. Помогите пожалуйста, для полного счастья с VESTA CP не хватает только этого...
А что за ошибка была? В какой именно файл пихали? :)
Напоминаю, что должен быть пользовательский конфиг nginx.

После добавления кода делайте

Code: Select all

nginx -t
Проверка конфигурации, которая без вреда на работу сайта покажет ошибки, если есть.

Re: NGINX - защита папки паролем

Posted: Tue Feb 28, 2017 8:58 pm
by Stesh
elenix wrote:

Code: Select all

location ^~ /folder/ {
    auth_basic            "Restricted Area";
    auth_basic_user_file  conf/htpasswd;
}
Файл паролей я создал, все прописал и т.д., воткнул этот код в файл и NGINX не стартует((((. Код я воткнул просто в самом конце файла отступив пару строчек. Помогите пожалуйста, для полного счастья с VESTA CP не хватает только этого...
Кроме синтаксиса (как сказано, проверяем nginx -t ), есть еще архитектурные особенности nginx при обработке запроса. Например для /folder/index.php данное правило не сработает и он не будет закрыт паролем, так как запрос не попадет в этот locatoin.

А если вместо

Code: Select all

location ^~ /folder/ {
    auth_basic            "Restricted Area";
    auth_basic_user_file  conf/htpasswd;
}
сделать так

Code: Select all

location ^~ /folder/ {
    auth_basic            "Restricted Area";
    auth_basic_user_file  conf/htpasswd;

      location ~.php$ {
      ***
      ***
      }
}
то /folder/index.php будет закрыт паролем.

Re: NGINX - защита папки паролем

Posted: Thu Mar 02, 2017 10:31 pm
by elenix
Пробую добавлять код который вы написали но, nginx не перезапускается, пишет ошибка. Команда nginx -t тоже показывает что оба конфига основной и пользовательский не проходят проверку.

Код пробовал добавлять и в

/etc/nginx/nginx.conf

и в home/admin/conf/web/nginx.conf

Вместо этих звездочек *** что-то прописывать нужно? Я вставил так как есть просто заменил на свои пути))).

И еще такая проблема если зажать в браузере CTRL+R (аналог F5) сайты выдают ошибку соединения с базой данных и MySQL падает. Пробовал разные настройки базы, но ничего не помогает. Помогает только рестарт MySQL. Помню когда использовал версию весты с апачем, то эта проблема решилась редактированием файла апача, что-то типа макс юзер конекшн и т.д. методом тыка тогда избавился. Тут же блин непонятно что теперь делать. Нашел инструкцию
# Описываем зону (slimits), в которой будут храниться состояния сессий. Зона размером 1 Мб может хранить около 32000 состояний, мы устанавливаем ее размер равным 5 Мб
limit_zone slimits $binary_remote_addr 5m;
# Задаем максимальное количество одновременных соединений для одной сессии. По сути, это число задает максимальное количество соединений с одного IP
limit_conn slimits 5;

Первая директива должна находиться в секции HTTP, вторая – в секции location. Когда количество соединений выйдет за пределы лимитов, клиент получит сообщение «Service unavailable» с кодом 503.
И вот я открываю home/admin/conf/web/nginx.conf но там только секции server, пробовал пихать это куда только можно, но nginx выдает ошибку и не перезапускается с новыми настройками. Где эта секция HTTP и что куда пихать непонятно, хоть бери да на апач возвращайся.

Версия весты последняя, 1 GB RAM нагрузка копеечная до 200 уников день...почти все на Wordpress

Re: NGINX - защита папки паролем

Posted: Mon Feb 17, 2020 5:04 pm
by snaiperIW
elenix wrote:
Thu Mar 02, 2017 10:31 pm
Пробую добавлять код который вы написали но, nginx не перезапускается, пишет ошибка. Команда nginx -t тоже показывает что оба конфига основной и пользовательский не проходят проверку.

Код пробовал добавлять и в

/etc/nginx/nginx.conf

и в home/admin/conf/web/nginx.conf

Вместо этих звездочек *** что-то прописывать нужно? Я вставил так как есть просто заменил на свои пути))).

И еще такая проблема если зажать в браузере CTRL+R (аналог F5) сайты выдают ошибку соединения с базой данных и MySQL падает. Пробовал разные настройки базы, но ничего не помогает. Помогает только рестарт MySQL. Помню когда использовал версию весты с апачем, то эта проблема решилась редактированием файла апача, что-то типа макс юзер конекшн и т.д. методом тыка тогда избавился. Тут же блин непонятно что теперь делать. Нашел инструкцию
# Описываем зону (slimits), в которой будут храниться состояния сессий. Зона размером 1 Мб может хранить около 32000 состояний, мы устанавливаем ее размер равным 5 Мб
limit_zone slimits $binary_remote_addr 5m;
# Задаем максимальное количество одновременных соединений для одной сессии. По сути, это число задает максимальное количество соединений с одного IP
limit_conn slimits 5;

Первая директива должна находиться в секции HTTP, вторая – в секции location. Когда количество соединений выйдет за пределы лимитов, клиент получит сообщение «Service unavailable» с кодом 503.
И вот я открываю home/admin/conf/web/nginx.conf но там только секции server, пробовал пихать это куда только можно, но nginx выдает ошибку и не перезапускается с новыми настройками. Где эта секция HTTP и что куда пихать непонятно, хоть бери да на апач возвращайся.

Версия весты последняя, 1 GB RAM нагрузка копеечная до 200 уников день...почти все на Wordpress
Добрый день!
Ну и как успехи у Вас? Удалось найти решение?