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ə yaapache2.conf) redaktə etmək. - Dinləmə portlarının qurulması (
Listen).
- Mənbə kodundan tərtib və paketlərdən quraşdırma (
- 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,DocumentRootdirektivlə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.
- Modulları aktivləşdirmək və deaktiv etmək (məsələn,
- Təhlükəsizlik:
- SSL/TLS konfiqurasiyası
mod_sslvə 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).htaccessvə ya konfiqurasiya faylları ilə. - Ümumi hücumlara qarşı qorunma (məsələn, DDoS, SQL Injection - WAF ilə birlikdə).
- SSL/TLS konfiqurasiyası
- 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).
- MPM parametrlərinin optimallaşdırılması (
- 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_statusistifadə edərək serverin vəziyyətini və sorğuları izləmək.
- Giriş qeyd formatlarını qurmaq (
- 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).