====== 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}}//