Http Basic Auth v Nginx

Návod, jak jednoduše nastavit Http Basic Auth pro webový server Nginx.

Pokud vznikne potřeba schovat webové stránky za nějaké jednoduché přihlášení a používáte webový server Nginx, tak lze velmi jednoduše využít Http Basic Auth mechanismus. Pokud používáte webový server Apache, podívejte se na článek Http Basic Auth s Apache serverem a .htaccess

Nastavení Http Basic Authentication je velmi jednoduché a rychlé. V podstatě nám stačí pouze vygenerovat si soubor s přihlašovacími údaji a vložit dva řádky do konfigurace domény v nginx.

Vytvoření souboru s přihlašovacími údaji je snadné. Můžeme k tomu buďto využít nějakou online službu, např. https://hostingcanada.org/htpasswd-generator/ nebo využít příkaz htpasswd:

$ htpasswd -bcB .htpasswd username password

Tímto vygenerujeme soubor .htpasswd přímo v aktuálním adresáři a použité parametry -bcB definují:

  • b - Heslo zadáváme přímo v příkazu.
  • c - Požadovaný soubor chceme vytvořit. Pokud již soubor existuje, tak bude přepsán!
  • B - Pro šifrování hesla použijeme bcrypt

Pokud příkaz htpasswd nemáte k dispozici, lze si jej velmi snadno nainstalovat z balíčku apache2-utils (nebo httpd-tools v RedHat světě). V Debian/Ubuntu světě instalace velmi snadno pomocí:

# V Debianu jako root
apt install apache2-utils

# V Ubuntu pomocí sudo
sudo apt install apache2-utils

Přihlášení poté můžeme nastavit buďto pouze pro určitou část webu pomocí direktivy location:

location /api {
    auth_basic "Login required";
    auth_basic_user_file /path/to/.htpasswd; 
}

Nebo snadno i pro komplet web umístěním přímo do definice serveru:

server {
    ...
    auth_basic "Login required";
    auth_basic_user_file /path/to/.htpasswd; 

Podpora pro Basic Auth je v Nginx pouze základní a proto nelze, narozdíl třeba od Apache serveru, konkrétně specifikovat jaký uživatel se může přihlásit. Přihlásit se budou moci všichni uživatelé definovaní v auth souboru.

Pro kompletní možnosti nastavení doporučuji si projít oficiální dokumentaci Http Basic Auth v Nginx.

Mohlo by vás také zajímat

NGINX, PHP-FPM a memory_limit

Nastavení memory limitu pro PHP v konfiguraci NGINX a PHP-FPM

Číst více

NGINX a priorita zpracování location direktiv

V konfiguraci domény v NGINX můžete mít více location direktiv, které se svým nastavením překrývají. Zde je popis v jakém pořadí budou vyhodnoceny

Číst více

NGINX a nastavení cache u PHP generovaných obrázků a statických souborů

Správné nastavení cache u statického obsahu může znatelně zlepšit rychlost načítání stránek

Číst více

nám. Republiky 28
301 00 Plzeň
Česká republika
IČ: 28006402
DIČ: CZ28006402

© 2002 - 2021 iD-SIGN BRANDS MENTIONED ABOVE ARE PROPERTY OF THEIR RESPECTIVE OWNER.