Du har kanskje aldri tenkt så mye på hva Auth Basic er, men du har helt sikkert støtt på det når du går inn i ruterens innstillinger. Det er det de kaller mekanismen for autorisasjon med brukernavn og passord på webservernivå. Slik autorisasjon støttes i både Apache og Nginx. I denne veiledningen foreslår vi at du tar for deg spørsmålet om hvordan du konfigurerer Auth Basic for en bestemt rute eller et bestemt nettsted.
Slik ser Auth Basic-autorisasjonsvinduet ut:
Nå bør du forstå hva denne instruksjonen handler om. Det er mulig å konfigurere autorisasjon for en bestemt URL, for hele nettstedet eller for alle nettstedene. Men det første du må gjøre, er å opprette en fil med en liste over brukere og passord. Til dette formålet bruker vi verktøyet htpasswd. Syntaksen til kommandoen er som følger:
$ sudo htpasswd -c /path/to/file username
I dette tilfellet brukes alternativet -c til å opprette en ny fil, og du trenger ikke bruke det til å redigere tidligere opprettede filer. Et eksempel
$ sudo htpasswd -c /etc/nginx/auth.basic admin
Programmet vil be om et dobbelt passord. Av sikkerhetshensyn vises ikke passordet, men det tastes inn. Når du har opprettet en slik fil, kan du gå direkte til konfigurasjonen av Nginx.
Hvis du vil passordbeskytte alle ressurser, må du legge til et direktiv i http-delen
av filen /etc/nginx/nginx.conf:
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;
Hvis du vil beskytte en bestemt sideadresse (URL), må du legge til et direktiv i den tilsvarende plasseringsblokken. Dette kan være /wp-admin/admin-ajax.php:
location /wp-admin/admin-ajax.php {
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;
}
Hvis nettstedet er på WordPress, er det best å plassere plasseringen
i location/
. Alle reglene som er beskrevet ovenfor, vil fungere, i tillegg til at de er beskyttet. Hvis du trenger å tillate tilgang for en bestemt plassering
, vil direktivet se ut som auth_basic "off":
location /wp-admin/admin-ajax.php {
auth_basic "off";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9002;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}
PHP-prosessering må legges til i lokasjonsblokken
, ellers vil brukeren bli bedt om å laste ned skriptet de får tilgang til.
Dermed er det ikke så vanskelig å sette opp tilgang i Nginx. Du trenger bare å konfigurere lokasjonsblokken riktig.