Sobes.tech
Intern

Apache HTTP Server ilə işlədinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Bəli, işləyib. Müxtəlif infrastrukturda Apache HTTP Server-in konfiqurasiyası, optimallaşdırılması və dəstəyi üzrə təcrübəm var.

Əsas iş sahələri:

  • Quraşdırma və əsas konfiqurasiya:
    • Mənbə kodundan tərtib və paketlərdən quraşdırma (apt, yum).
    • Əsas konfiqurasiya faylı httpd.conf (və ya apache2.conf) redaktə etmək.
    • Dinləmə portlarının qurulması (Listen).
  • Virtual hostlar:
    • Bir serverdə bir neçə sayt yerləşdirmək üçün virtual hostların yaradılması və konfiqurasiyası.
    • Ad əsasında (Name-based Virtual Hosts) və IP ünvanı əsasında (IP-based Virtual Hosts) konfiqurasiya.
    • ServerName, ServerAlias, DocumentRoot direktivlərindən istifadə.
  • Apache modulları:
    • Modulları aktivləşdirmək və deaktiv etmək (məsələn, mod_rewrite, mod_ssl, mod_proxy).
    • Xüsusi modulları konfiqurasiya etmək, məsələn, URL yenidən yazma qaydaları (mod_rewrite).
    • MPM (Multi-Processing Modules) ilə işləmək — prefork, worker, event.
  • Təhlükəsizlik:
    • SSL/TLS konfiqurasiyası mod_ssl və Let's Encrypt və ya digər sertifikatlar ilə.
    • IP-ə görə giriş məhdudiyyəti (Order, Deny, Allow).
    • İstifadəçi doğrulaması qurmaq (Basic, Digest) .htaccess və ya konfiqurasiya faylları ilə.
    • Ümumi hücumlara qarşı qorunma (məsələn, DDoS, SQL Injection - WAF ilə birlikdə).
  • Performans və miqyaslandırma:
    • MPM parametrlərinin optimallaşdırılması (MaxRequestWorkers, StartServers, MinSpareServers, MaxSpareServers).
    • Keşləmə istifadə etmək (mod_cache, mod_disk_cache).
    • FastCGI (PHP-FPM) ilə inteqrasiya və sorğuların proxy-lənməsi (mod_proxy, mod_proxy_http, mod_proxy_fcgi).
    • Sıxma qurmaq (mod_deflate).
  • Qeydiyyat və monitorinq:
    • Giriş qeyd formatlarını qurmaq (LogFormat, CustomLog).
    • Xəta loglarını analiz etmək (ErrorLog).
    • Monitorinq sistemləri ilə inteqrasiya (məsələn, Prometheus Exporter, Nagios pluginləri).
    • mod_status istifadə edərək serverin vəziyyətini və sorğuları izləmək.
  • Avtomatlaşdırma və yerləşdirmə:
    • Apache quraşdırılması və konfiqurasiyası üçün Ansible playbook-lar yazmaq.
    • Apache ilə Docker konteynerlərindən istifadə.

Virtual host konfiqurasiyasına nümunə:

# Virtual host konfiqurasiyası nümunəsi
<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>

    # HTTPS-ə yönləndirmə
    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 # Əgər varsa

    # SSL təhlükəsizlik parametrləri
    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>

Nginx ilə də təcrübə mövcuddur, bu da konkret tapşırıq üçün ən optimal həllin seçilməsinə və ya onları inteqrasiya etməyə imkan verir (məsələn, Apache Nginx arxasında backend kimi).