Dobrý den, přátelé. Pokračujeme v tomto malém kole tutoriálů a triků Nginx. Tentokrát si vysvětlíme, jak deaktivovat ETag v Nginx. Stejně jako v předchozích příspěvcích to bude jednoduchý příspěvek, ale to nám může na serveru hodně pomoci.
Co je Etag?
ETag (značka entity) je součástí HTTP a je to metoda používaná protokolem k ověření webové mezipaměti a umožňuje uživatelům zadávat podmíněné požadavky.
Jedna věc, kterou je třeba poznamenat, je, že použití ETags v hlavičce HTTP je volitelné. Problém je ale v tom, že mnoho správců stránek to považuje za nezabezpečené a bezpečnostní riziko a rozhodnou se to deaktivovat.
Problém je v tom, že pokud jsou ETags zneužity, je možné sledovat uživatele prostřednictvím mezipaměti prohlížeče. Dnes jej tedy deaktivujeme.
Předpoklady
Než budeme pokračovat, musíme se ujistit, že splňujeme požadavky na bezproblémové dokončení příspěvku
- Musíte mít nainstalovaný a nakonfigurovaný Nginx. Ujistěte se tedy, že jej máte pomocí oficiálních repozitářů vaší distribuce Linuxu.
- Verze Nginx musí být vyšší než 1.9.5. Neměli byste mít problém ji mít, protože většina distribucí obsahuje nejnovější verze.
- Mějte základní znalosti o používání terminálu.
- Uživatel s
sudo
přístup nebo root přístup.
Jdeme na to.
Jak globálně zakázat ETag v Nginx
Pokud chcete zakázat ETag globálně ovlivňující všechny stránky, které máte na serveru, musíte upravit konfigurační soubor Nginx, který je /etc/nginx/nginx.conf
.
sudo nano /etc/nginx/nginx.conf
A uvnitř http
přidat etag off
směrnice. Bude to vypadat takto.
http {
...
etag off;
...
}
Uložte změny, zavřete editor a restartujte Nginx, aby se změny aplikovaly.
sudos sytemctl restart nginx
Jak deaktivovat ETag v Nginx pro jeden web
V případě, že máte několik webů a každý z nich má svou vlastní vyhrazenou konfiguraci, musíte upravit každý z konfiguračních souborů webu, kde chcete deaktivovat ETag.
Například,
sudo nano /etc/nginx/sites-enabled/domain.conf
Ale na rozdíl od předchozí metody musíme přidat etag off
uvnitř server
. Bude to vypadat takto.
server {
listen 80;
server_name domain;
etag off;
}
Stejným způsobem zavřete editor a restartujte Nginx.
Závěr
ETag může být velmi užitečný, ale je také trochu riskantní. Tolik správců systému považuje za lepší jej zakázat. Dnes jste se to naučili pomocí Nginx.