Показать статистику
0 голосов
от (440 баллов)
Настраиваю свой небольшой проект и возник вопрос как закрыть пусть к админу с помощью пароля. То есть имеется сайт www.mycoolsite.com и я хочу закрыть доступ к www.mycoolsite.com/admin. Спасибо заранее, если скинете примеры конфигов для nginx.
642 просмотров 1 ответов

1 Ответ

0 голосов
от (340 баллов)

Вам нужно настроить .htaccess и слегка модицифировать конфиг nginx. Вот вкратце как это делается

  1. Сначала нужно создать логин для пользователя, для которого делаем авторизацию к /admin:
    • sudo sh -c "echo -n 'adminuser:' >> /etc/nginx/.htpasswd"
  2. Далее зададим пароль и сохраним его в зашифрованном виде:
    • sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"
  3. Теперь убедимся что все было создано:
    • cat /etc/nginx/.htpasswd
  4. Вывод должен быть похож на нечто вроде:
    • adminuser:$apr1$XI0/T0YA$jEKiTKGkTKKWFofnXzC1d1
  5. Далее вам нужно отредактировать конфиг виртуального хоста с вашим веб сайтом. Примерная конфигурация показана ниже. Не забудьте после всех правок проверить конфиг nginx на корректность и перезапустить веб сервер, если все ОК
  6. Проверка когнфига:
    • nginx -t
  7. Если ошибок нет, перезапустите сервис:
    • /etc/init.d/nginx restart
  8. Конфигурационный файл (не забудьте отредактировать - это только пример):

server {

    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.html index.htm;

    server_name mycoolwebsite;

    location /admin {
        try_files $uri $uri/ =404;
        auth_basic "Restricted Content";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}
...