Hvordan passordbeskytte nettkataloger i Nginx
Ledere av nettprosjekter trenger ofte å beskytte arbeidet sitt på en eller annen måte. Ofte spør folk hvordan de kan passordbeskytte nettstedet sitt mens det fortsatt er under utvikling.
I denne opplæringen skal vi vise deg en enkel, men effektiv teknikk for hvordan du passordbeskyttet nettkatalog når du kjører Nginx som nettserver.
I tilfelle du bruker Apache-nettserver, kan du sjekke guiden vår for passordbeskyttelse av en nettkatalog:
- Passordbeskytt nettkataloger i Apache
For å fullføre trinnene i denne opplæringen, må du ha:
- Nginx-nettserver installert
- Roottilgang til serveren
Trinn 1: Opprett bruker og passord
1. For å passordbeskytte nettkatalogen vår, må vi opprette filen som inneholder vårt krypterte brukernavn og passord.
Når du bruker Apache, kan du bruke htpasswd-verktøyet. Hvis du har dette verktøyet installert på systemet ditt, kan du bruke denne kommandoen til å generere passordfilen:
# htpasswd -c /path/to/file/.htpasswd username
Når du kjører denne kommandoen, vil du bli bedt om å angi et passord for brukeren ovenfor, og deretter opprettes .htpasswd-filen i den angitte katalogen.
2. Hvis du ikke har det verktøyet installert, kan du opprette .htpasswd-filen manuelt. Filen skal ha følgende syntaks:
username:encrypted-password:comment
Brukernavnet du vil bruke avhenger av deg, velg hva du vil.
Den viktigste delen er måten du genererer passordet for den brukeren på.
Trinn 2: Generer kryptert passord
3. For å generere passordet, bruk Perls integrerte krypt-funksjon.
Her er et eksempel på den kommandoen:
# perl -le 'print crypt("your-password", "salt-hash")'
Et eksempel fra det virkelige liv:
# perl -le 'print crypt("#12Dfsaa$fa", "1xzcq")'
Åpne nå en fil og legg inn brukernavnet ditt og den genererte i strengen, atskilt med semikolon.
Slik gjør du det:
# vi /home/tecmint/.htpasswd
Legg inn brukernavn og passord. I mitt tilfelle ser det slik ut:
tecmint:1xV2Rdw7Q6MK.
Lagre filen ved å trykke Esc etterfulgt av :wq.
Trinn 3: Oppdater Nginx-konfigurasjon
4. Åpne og rediger nå Nginx-konfigurasjonsfilen knyttet til nettstedet du jobber med. I vårt tilfelle vil vi bruke standardfilen på:
# vi /etc/nginx/conf.d/default.conf [For CentOS based systems] OR # vi /etc/nginx/nginx.conf [For CentOS based systems] # vi /etc/nginx/sites-enabled/default [For Debian based systems]
I vårt eksempel vil vi passordbeskytte katalogroten for nginx, som er: /usr/share/nginx/html
.
5. Legg nå til følgende to linjers seksjon under banen du ønsker å beskytte.
auth_basic "Administrator Login"; auth_basic_user_file /home/tecmint/.htpasswd;
Lagre nå filen og start Nginx på nytt med:
# systemctl restart nginx OR # service nginx restart
6. Kopier/lim inn denne IP-adressen i nettleseren din, og du bør bli bedt om passord:
Det er det! Hovednettkatalogen din er nå beskyttet. Når du vil fjerne passordbeskyttelsen på nettstedet, fjerner du ganske enkelt de to linjene du nettopp har lagt til i .htpasswd-filen, eller bruker følgende kommando for å fjerne den tilføyde brukeren fra en passordfil.
# htpasswd -D /path/to/file/.htpasswd username