Настройка auth basic nginx

Настройка auth basic nginx

Даже если вы ещё не знаете что такое Basic Auth, вы наверняка уже с ней сталкивались, например, при входе в интерфейс настройки роутера. Это механизм авторизации по имени пользователя и паролю на уровне веб-сервера. Такая авторизация поддерживается и в Apache и в Nginx.

В этой статье мы разберемся как настроить Basic Auth Nginx, для определённого маршрута или для всего сайта.

Настройка Basic Auth в Nginx

Окно авторизации Basic Auth выглядит вот так:

nastroika-auth-basic-nginx_1.png

Думаю теперь вы знаете о чём идёт речь. Такую авторизацию можно настроить для определённого URL, для всего сайта или для всех сайтов. Но сначала надо создать файл со списком пользователей и паролей. Для этого используется утилита htpasswd. Синтаксис у команды такой:

sudo htpasswd -c /путь/к/файлу имя_пользователя

Опция -c используется для создания нового файла, для редактирования уже существующих её использовать не надо. Например:

sudo htpasswd -c /etc/nginx/basic.auth admin

nastroika-auth-basic-nginx_2.png

Утилита два раза спросит пароль. Пароль вводится но не отображается. Это так должно быть для безопасности. После того, как файл будет создан можно переходить к настройке Nginx.

Для того чтобы защитить паролем все ваши сайты просто добавьте эти директиву в секцию http файла /etc/nginx/nginx.conf:

auth_basic "Restricted area";auth_basic_user_file /etc/nginx/auth.basic;

nastroika-auth-basic-nginx_3.png

Для защиты только определённой URL добавьте эти же директивы в нужный блок location. Например для /wp-admin/admin-ajax.php:

location /wp-admin/admin-ajax.php auth_basic "Restricted area";auth_basic_user_file /etc/nginx/auth.basic;

nastroika-auth-basic-nginx_4.png

Для WordPress такой location лучше размещать вложенным в location /. Тогда будут работать все правила описанные там, плюс ваше на защиту доступа. Если же наоборот надо разрешить доступ для определённого location то директива будут выглядеть так auth_basic "off". Например:

location /wp-admin/admin-ajax.php auth_basic "off";fastcgi_param SCRIPT_FILENAME document_rootfastcgi_script_name;fastcgi_pass 127.0.0.1:9002;fastcgi_index index.php;include /etc/nginx/fastcgi_params;

nastroika-auth-basic-nginx_5.png

Здесь разместить этот блок location вложенным уже не получиться, поэтому следует добавить в него обработку php иначе веб-сервер просто предложит пользователям скачать php скрипт, к которому они обращаются.

Выводы

Как видите, авторизация по паролю nginx настраивется не так уж сложно, надо только правильно сформулировать блок location. Если у вас остались вопросы, спрашивайте в комментариях!

Видео

Процессоры и память

kitaitcy-sozdali-sobstvennuiu-protcessornuiu-arkhitekturu-loongarch-teper-mips-im-ne-nuzhna_1.jpg

Китайцы создали собственную процессорную архи...

  • Апр 16, 2021
  • 419

Китайцы совершили ещё один прорыв. Компания Loongson представила собственную процессорную архитектуру LoongArch и набор инструкций для него. Более тог...

Видеокарты

nvidia-nazvala-zapusk-ampere-luchshim-v-istorii-nesmotria-na-defitcit-i-zavyshennye-tceny_1.jpg

Nvidia назвала запуск ampere лучшим в истории...

  • Апр 16, 2021
  • 344

В своём отчёте для инвесторов руководство NVIDIA заявило, что запуск нового поколения графических карт на архитектуре Ampere оказался лучшим за всю св...

Наверх