- 1 1. Úvod
 - 2 2. Instalace a počáteční nastavení Ubuntu
 - 3 3. Instalace a konfigurace Apache
 - 4 4. Konfigurace Virtuálních Hostitelů (Správa Více Webových Stránek)
- 4.1 Co je Virtuální Hostitel?
 - 4.2 Kroky pro Konfiguraci Virtuálních Hostitelů
- 4.2.1 1. Vytvoření Adresářů pro Každou Stránku
 - 4.2.2 2. Změna Vlastníka Adresářů
 - 4.2.3 3. Vytvoření Testovacího HTML Souboru
 - 4.2.4 4. Vytvoření Konfiguračních Souborů Virtuálních Hostitelů
 - 4.2.5 Konfigurace pro example.com
 - 4.2.6 Konfigurace pro test.com
 - 4.2.7 5. Povolení Virtuálních Hostitelů
 - 4.2.8 Test Konfigurace Apache
 
 - 4.3 6. Testování Lokálně (Úprava Souboru hosts)
 
 - 5 5. Povolení SSL/TLS (HTTPS)
 - 6 6. Zvyšování zabezpečení webového serveru
 - 7 7. Optimalizace výkonu
 - 8 8. Řešení problémů
 - 9 9. Shrnutí
 
1. Úvod
Co je to Ubuntu Web Server?
Webový server je systém, který doručuje webové stránky přes internet. Mezi populární software pro webové servery patří Apache, Nginx a LiteSpeed, ale nejrozšířenější na Ubuntu je Apache.
 Ubuntu je lehké, vysoce stabilní a open‑source, což z něj činí oblíbenou volbu jak pro jednotlivce, tak pro firmy. Je zvláště vhodné pro vytvoření LAMP stacku (Linux, Apache, MySQL/MariaDB, PHP), který se běžně používá pro provoz webových stránek a webových aplikací.
Pro koho je tento průvodce určen?
Tento článek je určen začátečníkům, kteří poprvé nastavují webový server. Poskytuje krok‑za‑krokem návod, jak nainstalovat Apache na Ubuntu, nakonfigurovat virtuální hosty, nastavit SSL certifikáty, optimalizovat výkon a zvýšit zabezpečení.
Co se naučíte
- Jak nastavit webový server na Ubuntu (instalace a konfigurace Apache)
 - Nastavení virtuálních hostů pro správu více webových stránek
 - Instalace bezplatných SSL certifikátů pomocí Let’s Encrypt
 - Zlepšení zabezpečení a optimalizace výkonu serveru
 - Řešení běžných problémů s webovým serverem
 
2. Instalace a počáteční nastavení Ubuntu
Systémové požadavky
Pro provoz Ubuntu jako webového serveru se doporučují následující minimální systémové specifikace:
| Component | Minimum Requirements | Recommended Requirements | 
|---|---|---|
| OS | Ubuntu 22.04 LTS | Ubuntu 22.04 LTS | 
| CPU | 1GHz or higher | 2GHz or higher | 
| Memory | 512MB | 2GB or higher | 
| Storage | 10GB or more | 20GB or more | 
| Network | Internet connection | High-speed connection recommended | 
Stažení a instalace Ubuntu
Ubuntu si můžete stáhnout z oficiálního webu: https://ubuntu.com/download/server. Po získání ISO souboru jej můžete nainstalovat pomocí VirtualBoxu nebo VMware pro virtuální prostředí, nebo na dedikovaném serveru či VPS.
Kroky instalace:
- Vytvoření instalačního média
 
- Použijte USB flash disk (např. s nástrojem Rufus)
 - Připojte ISO soubor ve virtuálním stroji
 
- Proveďte instalaci pomocí průvodce
 
- Zvolte jazyk na angličtinu
 - Zkontrolujte síťové připojení
 - Nastavte uživatelské jméno a heslo
 - Nainstalujte SSH server (volitelné, lze doplnit později)
 
- Dokončete nastavení OS a restartujte
 - Přihlaste se a proveďte počáteční konfiguraci
 
Základní počáteční nastavení
Po instalaci proveďte následující kroky:
- Aktualizace systémových balíčků
 
sudo apt update && sudo apt upgrade -y
→ Tím zajistíte, že jsou aplikovány bezpečnostní záplaty a aktualizace softwaru.
- Nastavení časové zóny
 
sudo timedatectl set-timezone America/New_York
→ Nastavte časovou zónu podle umístění vašeho serveru.
- Povolení firewallu
 
sudo ufw enable
→ Toto chrání server před neoprávněným přístupem.
- Konfigurace SSH (pro vzdálenou správu)
 
- Ověřte, zda je SSH povoleno: 
sudo systemctl status ssh - Pokud není povoleno, spusťte: 
sudo systemctl enable --now ssh 
Jakmile jsou tyto počáteční nastavení aplikována, je Ubuntu server připraven k nastavení jako webový server.
3. Instalace a konfigurace Apache
Co je to Apache?
Apache (oficiálně Apache HTTP Server) je open‑source software pro webové servery, známý pro svou stabilitu, škálovatelnost a bezpečnost. Přibližně 30 % webových serverů po celém světě používá Apache.
Klíčové vlastnosti:
- Bezplatný a open‑source
 - Modulární architektura pro snadnou úpravu
 - Podpora SSL/TLS pro zabezpečené HTTPS připojení
 - Podpora virtuálních hostů pro správu více webových stránek
 
Instalace Apache
Na Ubuntu lze Apache nainstalovat jednoduše pomocí správce balíčků apt.
Instalace Apache
Spusťte následující příkazy pro instalaci Apache:
sudo apt update
sudo apt install apache2 -y
Ověření instalace
Po instalaci zkontrolujte verzi Apache:
apache2 -v
Ukázkový výstup:
Server version: Apache/2.4.52 (Ubuntu)
Server built:   2023-07-01T12:34:56
Pokud vidíte tuto zprávu, Apache byl úspěšně nainstalován.
Spouštění, zastavování a restartování Apache
Apache se spravuje pomocí příkazu systemctl.
Spuštění Apache
sudo systemctl start apache2
Povolení automatického spuštění Apache při startu systému
sudo systemctl enable apache2
Kontrola stavu Apache
Pro ověření, že Apache běží:
sudo systemctl status apache2
Pokud Apache běží, uvidíte stav „active (running)“.
Restartovat nebo Zastavit Apache
Pokud potřebujete restartovat Apache po provedení změn konfigurace:
sudo systemctl restart apache2
Chcete-li dočasně zastavit Apache:
sudo systemctl stop apache2
4. Konfigurace Virtuálních Hostitelů (Správa Více Webových Stránek)
Co je Virtuální Hostitel?
Virtuální hostitel je funkce, která umožňuje jednomu serveru Apache hostovat více domén (nebo poddomén).
Například jeden server může hostovat jak example.com, tak test.com.
Existují dva typy virtuálních hostitelů:
- Virtuální Hostitel Založený na Názvu
 
- Hostuje více stránek na stejné IP adrese
 - Nejběžnější způsob správy více webových stránek
 
- Virtuální Hostitel Založený na IP
 
- Každá stránka je přiřazena k jiné IP adrese
 - Vyžaduje více síťových rozhraní na serveru
 
Obvykle se používá name-based virtual hosting.
Kroky pro Konfiguraci Virtuálních Hostitelů
1. Vytvoření Adresářů pro Každou Stránku
Každý virtuální hostitel vyžaduje věnovaný adresář pro ukládání souborů webové stránky.
sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html
2. Změna Vlastníka Adresářů
Aby Apache mohl přistupovat k souborům, nastavte vlastníka na www-data.
sudo chown -R www-data:www-data /var/www/example.com/public_html
sudo chown -R www-data:www-data /var/www/test.com/public_html
3. Vytvoření Testovacího HTML Souboru
Pro ověření vytvořte soubor index.html pro každou stránku.
echo "<h1>Welcome to example.com</h1>" | sudo tee /var/www/example.com/public_html/index.html
echo "<h1>Welcome to test.com</h1>" | sudo tee /var/www/test.com/public_html/index.html
4. Vytvoření Konfiguračních Souborů Virtuálních Hostitelů
Konfigurace virtuálních hostitelů jsou uloženy v /etc/apache2/sites-available/.
Konfigurace pro example.com
Vytvořte a upravte konfigurační soubor:
sudo nano /etc/apache2/sites-available/example.com.conf
Přidejte následující konfiguraci:
<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    <Directory /var/www/example.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
    CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>
Konfigurace pro test.com
sudo nano /etc/apache2/sites-available/test.com.conf
Přidejte následující obsah:
<VirtualHost *:80>
    ServerAdmin admin@test.com
    ServerName test.com
    ServerAlias www.test.com
    DocumentRoot /var/www/test.com/public_html
    <Directory /var/www/test.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/test.com_error.log
    CustomLog ${APACHE_LOG_DIR}/test.com_access.log combined
</VirtualHost>
5. Povolení Virtuálních Hostitelů
Jakmile jsou konfigurační soubory vytvořeny, povolte je pomocí a2ensite.
sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
Test Konfigurace Apache
Zkontrolujte syntaktické chyby:
sudo apachectl configtest
Pokud je výstup:
Syntax OK
Restartujte Apache pro aplikaci změn:
sudo systemctl restart apache2
6. Testování Lokálně (Úprava Souboru hosts)
Pro ověření, že virtuální hostitelé fungují správně, upravte svůj lokální soubor hosts.
sudo nano /etc/hosts
Přidejte následující řádky:
127.0.0.1 example.com
127.0.0.1 test.com
Po uložení otevřete prohlížeč a zadejte:
http://example.com/
Pokud uvidíte „Welcome to example.com“, je nastavení úspěšné.
5. Povolení SSL/TLS (HTTPS)
Co je SSL/TLS?
SSL (Secure Sockets Layer) a TLS (Transport Layer Security) jsou šifrovací technologie, které zabezpečují komunikaci přes internet.
Výhody SSL/TLS:
✅ Šifruje komunikaci (snižuje riziko krádeže dat a manipulace)
 ✅ Zvyšuje SEO hodnocení (Google upřednostňuje HTTPS stránky ve výsledcích vyhledávání)
 ✅ Zabraňuje varováním v prohlížeči (HTTP stránky mohou zobrazovat „Není zabezpečeno“)
 ✅ Zabezpečuje online platby a přihlašovací údaje
Použití Let’s Encrypt pro bezplatné SSL
Let’s Encrypt je certifikační autorita, která poskytuje bezplatné SSL certifikáty. K nastavení používáme certbot.
Instalace Certbotu
sudo apt update
sudo apt install certbot python3-certbot-apache -y
Automatická konfigurace SSL pro Apache
sudo certbot --apache -d example.com -d www.example.com
Ověření, že HTTPS funguje
Po instalaci zkontrolujte:
https://example.com/
Pokud v prohlížeči vidíte ikonu zámku, SSL funguje.
6. Zvyšování zabezpečení webového serveru
Nastavení firewallu (UFW)
Povolení firewallu a otevření potřebných portů
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp   # SSH
sudo ufw allow 80/tcp   # HTTP
sudo ufw allow 443/tcp  # HTTPS
sudo ufw enable
Ochrana SSH
Změna portu SSH
sudo nano /etc/ssh/sshd_config
Změna:
Port 2222  # Change 22 to a custom port
Restart SSH:
sudo systemctl restart ssh
7. Optimalizace výkonu
Ladění Apache
Ve výchozím nastavení není Apache vždy optimalizován pro efektivní zpracování vysokého provozu.
 Můžete upravit následující nastavení pro zlepšení výkonu.
Optimalizace MPM (Multi-Processing Module)
MPM (Multi-Processing Module) určuje, jak Apache zpracovává požadavky.
Zkontrolujte aktuální konfiguraci MPM:
apachectl -M | grep mpm
Příklad výstupu:
mpm_prefork_module (shared)
Pokud vidíte mpm_prefork_module, zvažte přechod na mpm_event pro lepší výkon.
Změna na MPM Event:
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo systemctl restart apache2
Povolení KeepAlive
KeepAlive umožňuje trvalá spojení, čímž snižuje počet nových požadavků.
Upravte konfigurační soubor Apache:
sudo nano /etc/apache2/apache2.conf
Přidejte nebo upravte následující nastavení:
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
Restartujte Apache:
sudo systemctl restart apache2
Využití cachování
Použití cachování v prohlížeči a na serveru snižuje nadbytečné požadavky a zlepšuje dobu odezvy.
Povolení mod_expires pro cachování v prohlížeči
sudo a2enmod expires
sudo systemctl restart apache2
Upravte konfigurační soubor virtuálního hosta:
sudo nano /etc/apache2/sites-available/example.com.conf
Přidejte:
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 1 month"
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
</IfModule>
Restartujte Apache:
sudo systemctl restart apache2
Povolení komprese Gzip
Povolte kompresi pro zmenšení velikosti souborů a zrychlení načítání.
Povolení mod_deflate
sudo a2enmod deflate
sudo systemctl restart apache2
Upravte konfigurační soubor virtuálního hosta:
sudo nano /etc/apache2/sites-available/example.com.conf
Přidejte:
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
Restartujte Apache:
sudo systemctl restart apache2
Omezení zdrojů
Aby se předešlo nadměrnému využívání zdrojů, omezte počet spojení na IP.
Povolení mod_ratelimit
sudo a2enmod ratelimit
sudo systemctl restart apache2
Upravte konfigurační soubor virtuálního hostitele:
sudo nano /etc/apache2/sites-available/example.com.conf
Přidejte:
<Location />
    SetOutputFilter RATE_LIMIT
    SetEnv rate-limit 200
</Location>
Restartujte Apache:
sudo systemctl restart apache2
8. Řešení problémů
Apache se nespustí nebo neočekávaně zastaví
Zkontrolujte stav Apache
sudo systemctl status apache2
Pokud výstup obsahuje:
Active: failed
Pak došlo k chybě.
Zkontrolujte chybové logy
sudo journalctl -xe
sudo tail -f /var/log/apache2/error.log
Zkontrolujte konflikty portů
sudo netstat -tulnp | grep ':80'
Nebo:
sudo lsof -i:80
Problémy s SSL certifikátem
SSL certifikát vypršel
sudo certbot renew --force-renewal
Chyba konfigurace SSL v Apache
Upravte konfigurační soubor SSL pro Apache:
sudo nano /etc/apache2/sites-available/example.com-le-ssl.conf
Ověřte:
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Restartujte Apache:
sudo systemctl restart apache2
Webová stránka se nenačítá (chyby 403, 404, 500)
403 Zakázáno
sudo chown -R www-data:www-data /var/www/example.com/public_html
sudo chmod -R 755 /var/www/example.com/public_html
404 Nenalezeno
Zkontrolujte konfiguraci virtuálního hostitele:
DocumentRoot /var/www/example.com/public_html
Povolte mod_rewrite, pokud je to nutné:
sudo a2enmod rewrite
sudo systemctl restart apache2
500 Interní chyba serveru
Zkontrolujte chybové logy:
sudo tail -f /var/log/apache2/error.log
Zkuste přejmenovat .htaccess:
mv /var/www/example.com/public_html/.htaccess /var/www/example.com/public_html/.htaccess.bak
9. Shrnutí
Co jste se naučili
Projděme si klíčová témata obsažená v tomto průvodci.
| Section | Key Points | 
|---|---|
| 1. Introduction | Overview of Ubuntu Web Server and the purpose of this guide | 
| 2. Installing and Initial Setup of Ubuntu | Setting up Ubuntu, updating packages, and configuring the firewall | 
| 3. Installing and Configuring Apache | Installing Apache, starting the service, and verifying functionality | 
| 4. Configuring Virtual Hosts | Hosting multiple websites on a single Apache server | 
| 5. Enabling SSL/TLS | Using Let’s Encrypt for HTTPS setup | 
| 6. Enhancing Web Server Security | Firewall setup, SSH security, and Apache hardening | 
| 7. Performance Optimization | Using caching, compression, and tuning Apache settings | 
| 8. Troubleshooting | Fixing Apache errors, SSL issues, and common website errors | 
Další kroky
Nyní, když je váš webový server Ubuntu spuštěn, zvažte studium pokročilejších témat pro rozšíření schopností vašeho serveru:
✅ Nasazení WordPress nebo PHP aplikací
 ✅ Nastavení databázového serveru (MySQL / MariaDB)
 ✅ Konfigurace Nginx jako reverzní proxy pro Apache
 ✅ Implementace automatického škálování s cloudovými platformami (AWS, GCP, Azure)
 ✅ Pokročilé logování a monitorování (Fail2Ban, Logwatch, Prometheus)
Často kladené otázky (FAQ)
Q1: Mám pro svůj webový server zvolit Nginx nebo Apache?
A1: Pokud váš web slouží převážně statickému obsahu, doporučuje se Nginx. Pokud potřebujete zpracování dynamického obsahu (např. PHP), Apache je lepší volba. Můžete také použít Nginx jako reverzní proxy před Apache.
Q2: Lze SSL certifikáty obnovovat automaticky?
A2: Ano, Certbot podporuje automatické obnovení. Stav obnovení můžete zkontrolovat pomocí:
sudo certbot renew --dry-run
Pro plně automatické obnovení se doporučuje nastavit cron úlohu.
Q3: Jak mohu dále zvýšit zabezpečení svého serveru?
A3: Implementujte Fail2Ban pro prevenci útoků hrubou silou, skryjte podrobnosti o verzi Apache, deaktivujte nepoužívané moduly a vynucujte silné bezpečnostní praktiky pro SSH.
Q4: Jak mohu zlepšit výkon Apache?
A4: Přepněte na MPM Event, povolte caching (mod_cache), použijte gzip kompresi (mod_deflate) a optimalizujte nastavení KeepAlive.
Q5: Proč dostávám chybu „403 Forbidden“?
A5: Ujistěte se, že vlastnictví adresáře je nastaveno na www-data a upravte oprávnění souborů:
sudo chown -R www-data:www-data /var/www/example.com/public_html
sudo chmod -R 755 /var/www/example.com/public_html
Závěrečné myšlenky
Nastavení webového serveru Ubuntu zahrnuje několik kroků, od instalace a konfigurace po optimalizaci a řešení problémů. Jakmile však proces pochopíte, můžete vytvořit a spravovat výkonné prostředí pro hostování webu.
🚀 Následujte tento průvodce, abyste vytvořili bezpečný, rychlý a spolehlivý webový server, a nadále zlepšovali své dovednosti jako správce serveru! 🚀

 ![Příčiny a řešení, proč nelze zadat heslo nebo se přihlásit v Ubuntu [Kompletní průvodce pro začátečníky]](https://www.linux.digibeatrix.com/wp-content/uploads/2025/01/222e1410df4982d8e85d09bb3e3389af-375x214.webp)
