Sobes.tech
Intern

Kas olete töötanud Apache HTTP Serveriga?

sobes.tech AI

Vastus AI-lt

Jah, olen töötanud. Mul on kogemusi Apache HTTP Serveri seadistamisel, optimeerimisel ja toetamisel erinevates infrastruktuurides.

Peamised töövaldkonnad:

  • Paigaldamine ja põhikonfiguratsioon:
    • Koodi kompileerimine lähtekoodist ja paigaldamine paketidest (apt, yum).
    • Põhikontrollifaili httpd.conf (või apache2.conf) redigeerimine.
    • Pordi kuulamise seadistamine (Listen).
  • Virtuaalsed hostid (Virtual Hosts):
    • Mitme veebisaidi majutamine ühel serveril virtuaalsete hostide abil.
    • Konfiguratsioon nime järgi (Name-based Virtual Hosts) ja IP-aadressi järgi (IP-based Virtual Hosts).
    • Kasutades ServerName, ServerAlias, DocumentRoot direktiive.
  • Apache moodulid (Modules):
    • Moodulite lubamine ja keelamine (mod_rewrite, mod_ssl, mod_proxy).
    • Spetsiifiliste moodulite konfiguratsioon, näiteks URL-i ümberkirjutamise reeglid (mod_rewrite).
    • Töö MPM-ga (Multi-Processing Modules) — prefork, worker, event.
  • Turvalisus:
    • SSL/TLS seadistamine mod_ssl ja Let's Encrypt või teiste sertifikaatidega.
    • Juurdepääsu piiramine IP järgi (Order, Deny, Allow).
    • Autentimise seadistamine (Basic, Digest) kasutades .htaccess või konfiguratsioonifaile.
    • Kaitse levinud rünnakute eest (näiteks DDoS, SQL Injection) koos WAF-iga.
  • Tõrkeotsing ja skaleerimine:
    • MPM seadistuste optimeerimine (MaxRequestWorkers, StartServers, MinSpareServers, MaxSpareServers).
    • Vahemälu kasutamine (mod_cache, mod_disk_cache).
    • FastCGI (PHP-FPM) integratsioon ja päringute proxy (mod_proxy, mod_proxy_http, mod_proxy_fcgi).
    • Surumahtude seadistamine (mod_deflate).
  • Logimine ja jälgimine:
    • Juurdepääsulogide formaadid (LogFormat, CustomLog) seadistamine.
    • Vea logide analüüs (ErrorLog).
    • Integratsioon jälgimissüsteemidega (näiteks Prometheus Exporter, Nagios pluginad).
    • mod_status kasutamine serveri ja päringute oleku jälgimiseks.
  • Automatiseerimine ja juurutamine:
    • Ansible playbookide kirjutamine Apache installimiseks ja seadistamiseks.
    • Docker konteinerite kasutamine.

Virtuaalse hosti konfiguratsiooni näide:

# Virtuaalse hosti konfiguratsiooni näide
<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>

    # Ümber suunamine HTTPS-ile
    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 # Kui olemas

    # SSL-i turvaseaded
    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>

Võrreldes Nginx-iga, mul on ka kogemusi, mis võimaldab valida optimaalse lahenduse konkreetsele ülesandele või neid integreerida (näiteks Apache nagu backend Nginx taga).