Jak vytvořit bezpečný a výkonný webový server Ubuntu s Apache (kompletní průvodce)

目次

1. Úvod

Co je Ubuntu webový server?

Webový server je systém, který poskytuje webové stránky přes internet. Mezi populární software pro webové servery patří Apache, Nginx a LiteSpeed, ale nejčastěji používanou volbou na Ubuntu je Apache.
Ubuntu je lehké, stabilní a open-source, což ho činí oblíbeným mezi jednotlivci i firmami. Je zvláště vhodné pro provoz LAMP prostředí (Linux, Apache, MySQL/MariaDB, PHP), která pohánějí mnoho webových stránek a aplikací.

Pro koho je tento článek určen

Tento průvodce je určen pro začátečníky, kteří poprvé staví webový server. Vysvětluje, jak spustit webový server na Ubuntu, nainstalovat Apache, nakonfigurovat virtuální hosty a SSL certifikáty a provést optimalizaci a bezpečnostní vylepšení.

Co se naučíte

  • Jak postavit webový server na Ubuntu (instalace a konfigurace Apache)
  • Jak nastavit virtuální hosty a spravovat více webových stránek
  • Jak nainstalovat bezplatné SSL pomocí Let’s Encrypt
  • Jak aplikovat zabezpečení a optimalizaci výkonu
  • Běžné kroky řešení problémů a jejich řešení

2. Instalace Ubuntu a provedení počátečního nastavení

Požadované systémové specifikace

Pro provoz Ubuntu jako webového serveru jsou doporučeny následující minimální specifikace:

ItemMinimum RequirementsRecommended Requirements
OSUbuntu 22.04 LTSUbuntu 22.04 LTS
CPU1GHz or higher2GHz or higher
Memory512MB2GB or higher
Storage10GB or more20GB or more
NetworkInternet connectionHigh-speed connection recommended

Stažení a instalace Ubuntu

Ubuntu lze stáhnout z oficiální webové stránky (https://ubuntu.com/download/server). Stáhněte ISO soubor a nainstalujte jej do virtuálního stroje, jako je VirtualBox nebo VMware, nebo na dedikovaný server či VPS.

Kroky instalace:

  1. Vytvořte instalační médium
  • USB disk (pomocí nástrojů jako Rufus)
  • Připojte ISO soubor ve virtuálním stroji
  1. Postupujte podle instalačního průvodce
  • Vyberte preferovaný jazyk
  • Ověřte síťové připojení
  • Nastavte uživatelské jméno a heslo
  • Nainstalujte SSH server (volitelné—můžete jej nainstalovat později)
  1. Po dokončení instalace restartujte
  2. Přihlaste se a začněte s počáteční konfigurací

Základní počáteční nastavení

Po instalaci proveďte následující kroky počátečního nastavení.

  1. Aktualizujte všechny balíčky
    sudo apt update && sudo apt upgrade -y
    

→ Aplikuje bezpečnostní záplaty a aktualizuje softwarové balíčky.

  1. Nastavte časové pásmo
    sudo timedatectl set-timezone Asia/Tokyo
    

→ Nastaví systémový čas na japonský standardní čas (JST).

  1. Povolte firewall
    sudo ufw enable
    

→ Aktivuje firewall, aby chránil systém před neoprávněným přístupem.

  1. Nakonfigurujte SSH (pro vzdálenou správu)
  • Zkontrolujte, zda je SSH povoleno sudo systemctl status ssh
  • Pokud není, povolte jej sudo systemctl enable --now ssh

Po dokončení těchto kroků je váš Ubuntu server připraven k nastavení jako plně funkční webový server.

3. Instalace a konfigurace Apache

Co je Apache?

Apache (Apache HTTP Server) je open-source webový server známý pro svou stabilitu, rozšiřitelnost a silné bezpečnostní funkce. Přibližně 30 % serverů po celém světě používá Apache.

Klíčové vlastnosti:

  • Zdarma a open-source
  • Modulární architektura pro snadná rozšíření
  • Podpora SSL/TLS pro konfiguraci HTTPS
  • Virtuální hosty pro hostování více webových stránek

Instalace Apache

Na Ubuntu lze Apache snadno nainstalovat 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

Příklad výstupu:

Server version: Apache/2.4.52 (Ubuntu)
Server built:   2023-07-01T12:34:56

Pokud se zobrazí informace o verzi, Apache byl nainstalován správně.

Spouštění, zastavování a restartování Apache

Apache se spravuje pomocí příkazu systemctl.

Spuštění Apache

sudo systemctl start apache2

Apache nyní začne přijímat webové požadavky.

Povolení automatického spouštění

sudo systemctl enable apache2

Zkontrolujte stav Apache

Použijte tento příkaz k ověření, zda Apache běží:

sudo systemctl status apache2

Příklad výstupu:

● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
   Active: active (running) since ...

Restart nebo zastavení Apache

Restartujte Apache po úpravě konfiguračních nastavení:

sudo systemctl restart apache2

Dočasně zastavte Apache:

sudo systemctl stop apache2

Ověření provozu Apache

Pro potvrzení, že Apache běží správně, přistupte k IP adrese serveru.

1. Zkontrolujte IP adresu svého serveru

hostname -I

Nebo zkontrolujte externí IP:

curl ifconfig.me

2. Ověřte v webovém prohlížeči

Zadejte následující do svého prohlížeče:

http://<your-server-ip>/

Pro lokální nastavení:

http://localhost/

Měli byste vidět výchozí stránku Apache (/var/www/html/index.html).

Příklad výchozí stránky:

Apache2 Ubuntu Default Page
It works!

Pokud se tato zpráva zobrazí, Apache funguje správně.

Konfigurace firewallu

Ubuntu používá UFW (Uncomplicated Firewall) k správě pravidel firewallu.
Po instalaci Apache může být externí přístup k HTTP (port 80) a HTTPS (port 443) stále blokován.

Povolit Apache přes firewall

sudo ufw allow 'Apache'

Pro povolení také HTTPS:

sudo ufw allow 'Apache Full'

Zkontrolujte stav firewallu

sudo ufw status

Příklad výstupu:

Status: active

To                         Action      From
--                         ------      ----
Apache                     ALLOW       Anywhere
Apache (v6)                ALLOW       Anywhere (v6)

Pokud se toto zobrazí, provoz Apache je povolen přes firewall.

Shrnutí

Dosud jste nainstalovali Apache na Ubuntu a dokončili základní kroky nastavení.
Klíčové body, které byly pokryty:

  • Jak nainstalovat Apache
  • Jak spustit a povolit Apache
  • Jak ověřit provoz Apache v prohlížeči
  • Jak nakonfigurovat pravidla firewallu UFW
  • Přehled základních konfiguračních souborů Apache

4. Konfigurace virtuálních hostitelů (správa více webů)

Co jsou virtuální hostitelé?

Virtuální hostitelé vám umožňují hostovat více domén (nebo subdomén) na jednom serveru Apache.
Například jeden server může hostovat jak example.com, tak test.com.

Existují dva typy virtuálních hostitelů:

  1. Virtuální hostitelé založené na názvu
  • Více webů sdílí stejnou IP adresu
  • Nejčastější metoda
  1. Virtuální hostitelé založené na IP
  • Každý web používá jinou IP adresu
  • Vyžaduje více síťových rozhraní na jednom serveru

Ve většině případů se používají virtuální hostitelé založené na názvu.

Kroky pro konfiguraci virtuálních hostitelů

1. Vytvořte požadované adresáře

Vytvořte samostatný adresář pro každý web:

sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html

2. Změňte vlastnictví adresáře

Zajistěte, aby Apache mohl číst soubory nastavením 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řte zástupné HTML soubory

Vytvořte základní soubor index.html pro testování:

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řte konfigurační soubory virtuálních hostitelů

Konfigurační soubory virtuálních hostitelů jsou uloženy v adresáři /etc/apache2/sites-available/.

Konfigurace virtuálního hostitele pro example.com

Vytvořte a upravte konfigurační soubor pomocí následujícího příkazu:

sudo nano /etc/apache2/sites-available/example.com.conf

Obsah konfiguračního souboru:

.

<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 virtuálního hostitele 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ů

Po vytvoření konfiguračních souborů povolte virtuální hostitele pomocí a2ensite:

sudo a2ensite example.com.conf
sudo a2ensite test.com.conf

Otestujte konfiguraci Apache

Zkontrolujte syntaktické chyby:

sudo apachectl configtest

Ukázkový výstup:

Syntax OK

Pokud nejsou žádné chyby, restartujte Apache:

sudo systemctl restart apache2

6. Ověření lokálně (úprava souboru hosts)

Pro lokální testování virtuálních hostitelů upravte soubor hosts ve vašem PC.

sudo nano /etc/hosts

Přidejte následující řádky:

127.0.0.1 example.com
127.0.0.1 test.com

Uložte soubor, poté otevřete prohlížeč a navštivte:

http://example.com/

Měli byste vidět „Welcome to example.com“.

Stejně tak při návštěvě:

http://test.com/

by se mělo zobrazit „Welcome to test.com“.

7. Řešení problémů s virtuálními hostiteli

Pokud virtuální hostitelé nefungují správně, zkontrolujte následující:

1. Zkontrolujte chybové logy Apache

sudo tail -f /var/log/apache2/error.log

2. Ověřte, že jsou konfigurační soubory povoleny

ls /etc/apache2/sites-enabled/

Pokud jsou uvedeny správné soubory .conf, jsou virtuální hostitelé aktivní.

3. Zkontrolujte nastavení portu Apache

Ověřte, že je nakonfigurován port 80 (HTTP):

sudo nano /etc/apache2/ports.conf

Ujistěte se, že existuje následující řádek:

Listen 80

Shrnutí

Tato sekce vysvětlila jak konfigurovat virtuální hostitele v Apache na Ubuntu.
Klíčové body:

  • Koncept a účel virtuálních hostitelů
  • Vytváření adresářů pro jednotlivé weby
  • Vytváření a povolování konfiguračních souborů virtuálních hostitelů
  • Lokální testovací metody pomocí souboru hosts
  • Řešení běžných problémů

5. Úvod do SSL/TLS (povolení HTTPS)

Co je SSL/TLS?

SSL (Secure Sockets Layer) a TLS (Transport Layer Security) jsou šifrovací technologie používané k zajištění bezpečné komunikace přes internet.

Výhody povolení SSL/TLS

Šifruje komunikaci (snižuje riziko zachycení nebo změny dat)
Zlepšuje hodnocení SEO ve vyhledávačích (HTTPS stránky jsou upřednostňovány)
Zabraňuje varováním prohlížeče o zabezpečení (HTTP stránky ukazují „Not Secure“)
Chrání přihlašovací údaje a online transakce

Dnes se doporučuje TLS (TLS 1.2 / 1.3) a starší verze SSL (SSL 3.0 a starší) jsou zastaralé.

Získání bezplatného SSL certifikátu pomocí Let’s Encrypt

Let’s Encrypt je certifikační autorita (CA), která poskytuje bezplatné SSL certifikáty.
Pomocí certbot můžete snadno vydat certifikát a nakonfigurovat jej v Apache.

Instalace klienta Let’s Encrypt (Certbot)

Nainstalujte certbot, oficiálního klienta Let’s Encrypt:

sudo apt update
sudo apt install certbot python3-certbot-apache -y

Automatizace konfigurace SSL v Apache

Můžete automaticky nakonfigurovat Apache pomocí následujícího příkazu:

sudo certbot --apache -d example.com -d www.example.com

Tento příkaz provádí:

  1. Ověření domény (výzva HTTP-01)
  2. Vydání SSL certifikátu
  3. Automatická konfigurace SSL pro Apache
  4. Volitelné přesměrování z HTTP na HTTPS

Ověření funkce SSL

Přístup k následující URL pro potvrzení, že je HTTPS povoleno:

https://example.com/

Pokud váš prohlížeč zobrazí ikonu zámku, je SSL úspěšně aplikován.

Manuální konfigurace SSL pro Apache

Pokud nechcete používat certbot --apache, můžete SSL nakonfigurovat manuálně.

1. Povolit modul SSL pro Apache

sudo a2enmod ssl
sudo systemctl restart apache2

2. Konfigurovat virtuální hostitel SSL

Upravte soubor konfigurace SSL /etc/apache2/sites-available/example.com-le-ssl.conf:

sudo nano /etc/apache2/sites-available/example.com-le-ssl.conf

Příklad konfigurace:

<VirtualHost *:443>
    ServerAdmin admin@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

    <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>

3. Povolit konfiguraci SSL a restartovat Apache

sudo a2ensite example.com-le-ssl.conf
sudo systemctl restart apache2

Automatická obnova SSL certifikátů

Certifikáty Let’s Encrypt jsou platné 90 dní. Aby se vyhnuli manuálním obnovám, nakonfigurujte automatické aktualizace.

1. Test automatické obnovy Certbot

sudo certbot renew --dry-run

2. Zkontrolovat plán obnovy

Plán automatické obnovy Certbot je uložen pod /etc/cron.d/certbot.

sudo systemctl list-timers | grep certbot

Řešení problémů se SSL

1. SSL certifikát není aplikován

Řešení: Restartujte Apache a ověřte konfiguraci

sudo systemctl restart apache2
sudo apachectl configtest

2. Certifikát vypršel

sudo certbot renew --force-renewal

3. Chyby validace Let’s Encrypt

Řešení: Zkontrolujte pravidla firewallu

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

Shrnutí

Tato sekce vysvětlila, jak instalovat a konfigurovat bezplatný SSL pomocí Let’s Encrypt.
Klíčové body:

  • Základy SSL/TLS
  • Konfigurace Apache s Let’s Encrypt
  • Manuální konfigurace SSL
  • Automatická obnova certifikátů
  • Řešení problémů se SSL

6. Zlepšení bezpečnosti webového serveru

Konfigurace firewallu (UFW)

Ubuntu používá UFW (Uncomplicated Firewall) k blokování nepotřebného provozu a ochraně serveru.

Zkontrolovat aktuální nastavení firewallu

sudo ufw status

Povolit pouze požadované porty

Ve výchozím nastavení blokujte veškerý příchozí provoz a povolte pouze požadované porty:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Otevřít požadované porty:

  • SSH (Port 22)
    sudo ufw allow 22/tcp
    
  • HTTP (Port 80)
    sudo ufw allow 80/tcp
    
  • HTTPS (Port 443)
    sudo ufw allow 443/tcp
    

Povolit firewall

sudo ufw enable

Posílení bezpečnosti SSH

SSH je běžným cílem útoků hrubou silou, pokud zůstane s výchozími nastaveními. Posilte bezpečnost aplikací správných konfigurací.

Změnit port SSH

sudo nano /etc/ssh/sshd_config

Upravte tyto řádky:

Port 2222  # Change from 22 to any unused port
PermitRootLogin no  # Disable root login
PasswordAuthentication no  # Disable password login (use SSH keys only)

Restartovat SSH:

sudo systemctl restart ssh

Instalace Fail2Ban

Fail2Ban chrání váš server tím, že dočasně zakazuje IP adresy, které se opakovaně pokoušejí o přihlášení přes SSH.

sudo apt install fail2ban -y

Upravte konfiguraci:

sudo nano /etc/fail2ban/jail.local

Přidejte následující:

[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 600

Povolte Fail2Ban:

sudo systemctl restart fail2ban
sudo systemctl enable fail2ban

Zpevnění Apache

Skrytí informací o verzi Apache

sudo nano /etc/apache2/conf-available/security.conf

Změňte následující nastavení:

ServerTokens Prod
ServerSignature Off

Použijte změny:

sudo systemctl restart apache2

Zakázat výpis adresářů

sudo nano /etc/apache2/apache2.conf

Najděte blok adresáře a aktualizujte:

<Directory /var/www/>
    Options -Indexes +FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Restartujte Apache:

sudo systemctl restart apache2

Zakázat zbytečné moduly Apache

sudo a2dismod autoindex
sudo a2dismod status
sudo systemctl restart apache2

Přidání bezpečnostních hlaviček

Bezpečnostní hlavičky chrání vaše webové stránky před útoky, jako je cross-site scripting a clickjacking.

Povolit mod_headers

sudo a2enmod headers
sudo systemctl restart apache2

Přidat bezpečnostní hlavičky

sudo nano /etc/apache2/sites-available/example.com.conf

Přidejte následující uvnitř bloku <VirtualHost>:

<IfModule mod_headers.c>
    Header always set X-Content-Type-Options "nosniff"
    Header always set X-XSS-Protection "1; mode=block"
    Header always set X-Frame-Options "SAMEORIGIN"
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
</IfModule>

Restartujte Apache:

sudo systemctl restart apache2

Řešení problémů

Zkontrolujte nastavení firewallu

sudo ufw status

Zkontrolujte konfiguraci Apache na chyby

sudo apachectl configtest

Příklad výstupu:

Syntax OK

Nelze se připojit přes SSH po změně portu

Pokud se po změně portu nelze připojit přes SSH, uveďte nový port při připojování:

ssh -p 2222 user@server-ip

Shrnutí

Tato sekce vysvětlila jak posílit zabezpečení vašeho webového serveru.
Klíčové body:

  • Konfigurace pravidel firewallu UFW
  • Zabezpečení SSH (změna portu, Fail2Ban)
  • Zpevnění zabezpečení Apache (skrytí informací o verzi, zakázání výpisu)
  • Přidání bezpečnostních hlaviček

7. Optimalizace výkonu

Ladění Apache

Výchozí konfigurace Apache nemusí poskytovat optimální výkon. Použitím následujících úprav můžete dosáhnout výrazně vyššího výkonu.

Optimalizace MPM (Multi-Processing Module)

MPM (Multi-Processing Module) určuje, jak Apache zpracovává požadavky.

Zkontrolujte aktuální MPM:

apachectl -M | grep mpm

Příklad výstupu:

mpm_prefork_module (shared)

Pokud je povolen mpm_prefork_module, přepnutí na mpm_event může zlepšit výkon.

Změňte MPM:

sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo systemctl restart apache2

Povolit KeepAlive

KeepAlive (trvalé spojení) umožňuje klientům znovu použít existující spojení, čímž snižuje režii požadavků.

Upravte konfigurační soubor:

sudo nano /etc/apache2/apache2.conf

Potvrďte následující nastavení:

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

Restartujte Apache:

sudo systemctl restart apache2

Použití cache

Využitím cache v prohlížeči a na straně serveru můžete snížit zbytečné požadavky a výrazně zlepšit rychlost odezvy.

Povolit mod_expires (cache prohlížeče)

sudo a2enmod expires
sudo systemctl restart apache2

Přidejte následující do /etc/apache2/sites-available/example.com.conf:

<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

Povolit mod_cache (Vyrovnávací paměť serveru)

sudo a2enmod cache cache_disk
sudo systemctl restart apache2

Přidejte následující do /etc/apache2/sites-available/example.com.conf:

<IfModule mod_cache.c>
    CacheEnable disk /
    CacheRoot /var/cache/apache2/mod_cache_disk
    CacheDefaultExpire 86400
</IfModule>

Restartujte Apache:

sudo systemctl restart apache2

Povolit kompresi

Použijte mod_deflate k kompresi dat webu a snížení velikosti přenosu.

Povolit mod_deflate

sudo a2enmod deflate
sudo systemctl restart apache2

Přidejte následující do /etc/apache2/sites-available/example.com.conf:

<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ů

Pro přípravu na vysokou návštěvnost nebo potenciální škodlivý přístup nastavte limity zdrojů pomocí modulů Apache.

Povolit mod_ratelimit

sudo a2enmod ratelimit
sudo systemctl restart apache2

Přidejte následující do /etc/apache2/sites-available/example.com.conf:

<Location />
    SetOutputFilter RATE_LIMIT
    SetEnv rate-limit 200
</Location>

Restartujte Apache:

sudo systemctl restart apache2

Řešení problémů s výkonem

Zkontrolujte chybový protokol Apache

sudo tail -f /var/log/apache2/error.log

Zkontrolujte stav zatížení Apache

sudo apachectl status

Zkontrolujte využití CPU a paměti

top

nebo

htop

Pokud není nainstalován htop:

sudo apt install htop

Shrnutí

Tato sekce vysvětlila, jak optimalizovat výkon webového serveru.
Klíčové body:

  • Ladění Apache (optimalizace MPM a nastavení KeepAlive)
  • Používání vyrovnávací paměti (vyrovnávací paměť prohlížeče a serveru)
  • Komprese dat s mod_deflate
  • Řízení zdrojů pomocí mod_ratelimit

8. Řešení problémů

Apache se nespustí

Pokud se Apache nespustí, nejčastější příčinou je chyba v konfiguraci.

1. Zkontrolujte chybové zprávy

sudo systemctl status apache2

2. Testujte konfiguraci

sudo apachectl configtest

Pokud výstup obsahuje „Syntax error“, ověřte cestu nebo nastavení uvedené v chybové zprávě.

3. Restartujte Apache

sudo systemctl restart apache2

Nelze přistoupit k serveru

Pokud k serveru nelze přistoupit v prohlížeči, ověřte následující položky.

1. Zkontrolujte nastavení firewallu

sudo ufw status

Ujistěte se, že jsou povoleny porty 80 a 443.

2. Zkontrolujte stav Apache

sudo systemctl status apache2

3. Zkontrolujte IP adresu serveru

hostname -I

Virtuální hostitelé nefungují

Pokud se virtuální hostitelé nechovají podle očekávání, znovu zkontrolujte konfiguraci.

1. Ověřte, že jsou soubory virtuálních hostitelů povoleny

ls /etc/apache2/sites-enabled/

Pokud váš .conf není uveden, povolte ho:

sudo a2ensite example.com.conf
sudo systemctl restart apache2

2. Zkontrolujte rozlišení názvu hostitele

Při testování lokálně se ujistěte, že soubor /etc/hosts obsahuje:

127.0.0.1 example.com

3. Zkontrolujte cestu DocumentRoot

Nesprávné cesty často způsobují problémy s virtuálními hostiteli.

DocumentRoot /var/www/example.com/public_html

Problémy s SSL certifikátem

1. HTTPS nefunguje

Ověřte, že je SSL povoleno:

sudo apachectl -M | grep ssl

Povolte, pokud je to nutné:

sudo a2enmod ssl
sudo systemctl restart apache2

2. Certifikát vypršel

sudo certbot renew

3. Selhání ověření Let’s Encrypt

HTTP ověření vyžaduje, aby byl otevřen port 80.

sudo ufw allow 80/tcp
sudo systemctl restart apache2

Pomalý výkon webu

1. Zkontrolujte zatížení serveru

top

2. Prohlédněte si logy Apache

sudo tail -f /var/log/apache2/access.log

3. Ověřte nastavení cache

Ujistěte se, že jsou povoleny mod_expires, mod_cache a mod_deflate.

Chyby oprávnění (403 Forbidden)

Tato chyba obvykle naznačuje nesprávná oprávnění souborů nebo adresářů.

1. Zkontrolujte vlastnictví adresáře

sudo chown -R www-data:www-data /var/www/example.com

2. Zkontrolujte oprávnění adresáře

sudo chmod -R 755 /var/www/example.com

Monitorování chybových logů

Vždy monitorujte chybové logy během odstraňování problémů:

sudo tail -f /var/log/apache2/error.log

Shrnutí

Tato sekce poskytla metody pro řešení běžných problémů s vaším Ubuntu webovým serverem.
Klíčové body:

  • Chyby při spouštění Apache a kontrola konfigurace
  • Problémy s firewallem a sítí
  • Problémy s konfigurací virtuálních hostů
  • Chyby SSL certifikátů a jejich obnovy
  • Řešení výkonu a oprávnění

9. Shrnutí

V tomto článku jsme vysvětlili, jak vybudovat kompletní prostředí webového serveru na Ubuntu pomocí Apache, včetně vylepšení zabezpečení, optimalizace výkonu a technik odstraňování problémů.

Dodržením tohoto návodu můžete provozovat stabilní, zabezpečený a výkonný webový server, vhodný jak pro osobní projekty, tak pro podnikové aplikace.

✔ Klíčové body pokryté v tomto návodu

  • Instalace Ubuntu a provedení počáteční konfigurace systému
  • Instalace a konfigurace Apache
  • Nastavení virtuálních hostů pro správu více webových stránek
  • Povolení HTTPS pomocí bezplatných SSL certifikátů od Let’s Encrypt
  • Zvýšení zabezpečení serveru (UFW, posílení SSH, nastavení Apache)
  • Zlepšení výkonu (caching, komprese, ladění MPM)
  • Řešení běžných problémů během provozu serveru

✔ Co můžete dosáhnout po dokončení tohoto návodu

  • Hostovat více webových stránek na jednom Ubuntu serveru
  • Zajistit zabezpečenou komunikaci pomocí moderního SSL/TLS
  • Zlepšit rychlost a spolehlivost stránek pomocí cache a komprese
  • Rychle diagnostikovat a řešit problémy pomocí logů Apache a systémových nástrojů

✔ Doporučené další kroky

  • Nainstalovat PHP a MySQL/MariaDB pro vytvoření kompletního LAMP prostředí
  • Nasadit WordPress nebo jiný CMS
  • Implementovat automatické zálohovací řešení
  • Zvážit využití cloudových služeb (AWS, GCP, Azure, atd.)

S řádnou konfigurací a údržbou může Ubuntu webový server poskytovat dlouhodobou stabilitu a vynikající výkon.
Doufáme, že vám tento návod pomůže vybudovat spolehlivé a zabezpečené serverové prostředí.

年収訴求