Sobes.tech
Intern

Pracoval jste s Apache HTTP Server?

sobes.tech AI

Odpověď od AI

Ano, pracoval jsem. Mám zkušenosti s konfigurací, optimalizací a podporou Apache HTTP Server v různých infrastrukturách.

Hlavní oblasti práce:

  • Instalace a základní konfigurace:
    • Kompilace ze zdrojového kódu a instalace z balíčků (apt, yum).
    • Úprava hlavního konfiguračního souboru httpd.conf (nebo apache2.conf).
    • Nastavení poslouchacích portů (Listen).
  • Virtuální hosté:
    • Vytváření a konfigurace virtuálních hostů pro více webů na jednom serveru.
    • Konfigurace na základě jména (Name-based Virtual Hosts) a IP adresy (IP-based Virtual Hosts).
    • Použití direktiv ServerName, ServerAlias, DocumentRoot.
  • Moduly Apache:
    • Zapnutí a vypnutí modulů (například mod_rewrite, mod_ssl, mod_proxy).
    • Konfigurace specifických modulů, například pravidel přepisování URL (mod_rewrite).
    • Práce s MPM (Multi-Processing Modules) — prefork, worker, event.
  • Bezpečnost:
    • Konfigurace SSL/TLS s mod_ssl a Let's Encrypt nebo jinými certifikáty.
    • Omezení přístupu podle IP (Order, Deny, Allow).
    • Nastavení autentizace (Basic, Digest) pomocí .htaccess nebo konfiguračních souborů.
    • Ochrana před běžnými útoky (například DDoS, SQL Injection - ve spojení s WAF).
  • Výkon a škálování:
    • Optimalizace nastavení MPM (MaxRequestWorkers, StartServers, MinSpareServers, MaxSpareServers).
    • Použití cache (mod_cache, mod_disk_cache).
    • Integrace s FastCGI (PHP-FPM) a proxyování požadavků (mod_proxy, mod_proxy_http, mod_proxy_fcgi).
    • Nastavení komprese (mod_deflate).
  • Logování a monitoring:
    • Nastavení formátů logů přístupů (LogFormat, CustomLog).
    • Analýza chybových logů (ErrorLog).
    • Integrace s monitorovacími systémy (například Prometheus Exporter, Nagios pluginy).
    • Použití mod_status pro sledování stavu serveru a požadavků.
  • Automatizace a nasazení:
    • Psání Ansible playbooků pro instalaci a konfiguraci Apache.
    • Použití Docker kontejnerů s Apache.

Příklad konfigurace virtuálního hosta:

# Příklad konfigurace virtuálního hosta
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <Directory /var/www/example.com/public_html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    # Přesměrování na HTTPS
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>

<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/ssl_error.log
    CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

    <Directory /var/www/example.com/public_html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/example.com.crt
    SSLCertificateKeyFile /etc/ssl/private/example.com.key
    SSLCertificateChainFile /etc/ssl/certs/example.com.ca-bundle # Pokud existuje

    # Doporučené bezpečnostní nastavení SSL
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA
    SSLHonorCipherOrder on
    SSLSessionTickets off
    SSLCompression off

</VirtualHost>

Szintén van tapasztalatom Nginx-szel, ami lehetővé teszi a legoptimálisabb megoldás kiválasztását adott feladatra vagy azok integrálását (pl. Apache háttérként Nginx mögött).