Как запоролить директорию через nginx?

K
На сайте с 01.09.2005
Offline
199
397

Ребята, подскажите пожалуйста location для конфига nginx который запоролит директорию /admin/ которая находится по адресу

http://domain.com/admin/

suffix
На сайте с 26.08.2010
Offline
259
#1

1.


sudo apt install apache2-utils

2.


sudo htpasswd -c /etc/nginx/conf.d/.htpasswd admin

Где admin - логин. Команда предложит придумать пароль.

3.


location /admin/ {
auth_basic "Enter password!";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
}

Вставляем в конфиг nginx вашего сайта

4.


sudo service nginx restart

Всё !

Клуб любителей хрюш (https://www.babai.ru)
K
На сайте с 01.09.2005
Offline
199
#2
suffix:
1.

sudo apt install apache2-utils


2.

sudo htpasswd -c /etc/nginx/conf.d/.htpasswd admin


Где admin - логин. Команда предложит придумать пароль.

3.

location /admin/ {
auth_basic "Enter password!";
auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
}


Вставляем в конфиг nginx вашего сайта

4.

sudo service nginx restart


Всё !

htpasswd сгенерировал и прописал location в конфиг. При удачной авторизации в директрии /admin/ возвращает 404 Not Found.

suffix
На сайте с 26.08.2010
Offline
259
#3
kostyk:
htpasswd сгенерировал и прописал location в конфиг. При удачной авторизации в директрии /admin/ возвращает 404 Not Found.

В какое место всего конфига Вы вставили строчки авторизации ? Порядок важен.

Ну и на всякий случай кеш в браузере сбросьте.

S
На сайте с 30.09.2016
Offline
459
#4
kostyk:
При удачной авторизации в директрии /admin/ возвращает 404 Not Found.

Забыли создать каталог /admin/ ?

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
K
На сайте с 01.09.2005
Offline
199
#5
Sitealert:
Забыли создать каталог /admin/ ?

Нет, этот каталог существовал изначально по дефолту.

---------- Добавлено 29.11.2019 в 00:52 ----------

suffix:
В какое место всего конфига Вы вставили строчки авторизации ? Порядок важен.

Ну и на всякий случай кеш в браузере сбросьте.

Строчки вставил вот так


server {
listen 443 ssl http2;
ssl_certificate /etc/ssl/domain.crt;
ssl_certificate_key /etc/ssl/domain.key;
server_name domain.com www.domain.com;
proxy_temp_path /var/nginx/temp/domain.com;
access_log /var/log/nginx/domain.log;
fastcgi_param HTTPS on;

location /admin/ {
auth_basic "Enter password!";
auth_basic_user_file /usr/local/etc/nginx/conf.d/.htpasswd;
}
.....
suffix
На сайте с 26.08.2010
Offline
259
#6

А где у Вас строчки:


root /var/www/vhosts/domain.com;
index index.html index.htm index.php;

Ну или какой там у Вас путь.

Они должны быть выше чем location /admin/

K
На сайте с 01.09.2005
Offline
199
#7
suffix:
А где у Вас строчки:


root /var/www/vhosts/domain.com;
index index.html index.htm index.php;

Ну или какой там у Вас путь.

Они должны быть выше чем location /admin/

путь root /var/www/vhosts/domain.com; был ниже, сейчас поставил location под него, остановил нгинкс почистил все кеши запустил нгинкс. Все-равно возвращает 404.

S
На сайте с 30.09.2016
Offline
459
#8

Всё равно меня никто не переубедит в мнении, что если отдаётся ответ 404, то каталог не существует.

suffix
На сайте с 26.08.2010
Offline
259
#9
kostyk:
Все-равно возвращает 404.

А что у Вас там в /admin/ ?

И сайт не на cms какой-нибудь ?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий