====== Konfigurace webových serverů ====== Konfigurace určuje, jakým způsobem server (např. Nginx nebo Apache) reaguje na [[it:net:http_protocol|HTTP požadavky]]. Správné nastavení ovlivňuje nejen rychlost načítání stránek, ale také bezpečnost a interpretaci znakových sad. ===== 1. Hlavní konfigurační soubory ===== Každý server má své specifické umístění a syntaxi konfiguračních souborů: * **Apache:** Hlavní konfigurace je v `httpd.conf` nebo `apache2.conf`. Umožňuje také lokální přenastavení pomocí souborů **.htaccess** v jednotlivých složkách. * **Nginx:** Používá soubor `nginx.conf` a strukturu složek `sites-available` / `sites-enabled`. Nginx nepodporuje `.htaccess`, což zvyšuje jeho výkon. --- ===== 2. Nastavení kódování (Charset) ===== Jak bylo zmíněno v článku [[it:sw:html_meta|HTML a meta tagy]], server může posílat informaci o kódování v HTTP hlavičce. Pokud je toto nastavení v rozporu s HTML kódem, vznikají chyby v zobrazení diakritiky. ==== Příklad pro Apache (.htaccess): ==== AddDefaultCharset UTF-8 ==== Příklad pro Nginx (server block): ==== server { listen 80; charset utf-8; ... } --- ===== 3. Virtuální hostitelé (Virtual Hosts / Server Blocks) ===== Tato funkce umožňuje provozovat **více domén na jedné IP adrese**. Server podle hlavičky `Host` v požadavku pozná, kterou složku s webem má klientovi otevřít. * **Name-based hosting:** Nejběžnější typ, rozlišuje weby podle doménového jména. * **IP-based hosting:** Každý web má svou vlastní IP adresu. --- ===== 4. Bezpečnostní konfigurace ===== Základem bezpečné konfigurace je omezení informací, které server o sobě prozrazuje, a vynucení šifrování. * **Skrytí verze serveru:** Zabraňuje útočníkům snadno identifikovat známé zranitelnosti dané verze. * Nginx: `server_tokens off;` * Apache: `ServerTokens Prod` * **SSL/TLS (HTTPS):** Konfigurace cest k certifikátům a vynucení přesměrování z HTTP na HTTPS. * **HSTS (HTTP Strict Transport Security):** Hlavička, která prohlížeči přikazuje komunikovat se serverem výhradně přes šifrované spojení. --- ===== 5. Optimalizace výkonu ===== * **Komprese (Gzip/Brotli):** Server před odesláním data zkomprimuje, čímž ušetří až 70 % objemu přenášených dat. * **Caching:** Definice doby, po kterou mají prohlížeče uchovávat statické soubory (obrázky, CSS, JS) v paměti. * **Worker Processes:** Nastavení počtu vláken/procesů podle počtu jader CPU serveru. ---- //Související články:// * [[it:net:http_protocol|HTTP protokoly a hlavičky]] * [[it:sw:html_meta|HTML a meta tagy kódování]] * [[it:net:dns|Jak funguje DNS]] //Tagy: {{tag>server web-dev apache nginx devops configuration security}}//