Sobes.tech
Intern

Vai esat strādājis ar Apache HTTP Server?

sobes.tech AI

Atbilde no AI

Jā, esmu strādājis. Man ir pieredze ar Apache HTTP Server konfigurēšanu, optimizēšanu un atbalstu dažādās infrastruktūrās.

Galvenās darba jomas:

  • Uzstādīšana un pamata konfigurācija:
    • Koda kompilēšana no avota un uzstādīšana no paketēm (apt, yum).
    • Galvenā konfigurācijas faila httpd.conf (vai apache2.conf) rediģēšana.
    • Pārlūkošanas portu iestatīšana (Listen).
  • Virtuālie hosti (Virtual Hosts):
    • Dažādu vietņu izvietošana vienā serverī, konfigurējot virtuālos hostus.
    • Konfigurācija pēc nosaukuma (Name-based Virtual Hosts) un IP adreses (IP-based Virtual Hosts).
    • ServerName, ServerAlias, DocumentRoot direktīvu izmantošana.
  • Apache moduļi (Modules):
    • Moduļu ieslēgšana un izslēgšana (mod_rewrite, mod_ssl, mod_proxy).
    • Konfigurācija specifiskiem moduļiem, piemēram, URL pārrakstīšanas noteikumiem (mod_rewrite).
    • Darbs ar MPM (Multi-Processing Modules) — prefork, worker, event.
  • Drošība:
    • SSL/TLS konfigurācija ar mod_ssl un Let's Encrypt vai citiem sertifikātiem.
    • Pieejas ierobežojumi pēc IP (Order, Deny, Allow).
    • Autentifikācijas iestatīšana (Basic, Digest) ar .htaccess vai konfigurācijas failiem.
    • Aizsardzība pret izplatītākajām uzbrukumu formām (piemēram, DDoS, SQL Injection) kopā ar WAF.
  • Veiktspēja un mērogošana:
    • MPM iestatījumu optimizācija (MaxRequestWorkers, StartServers, MinSpareServers, MaxSpareServers).
    • Kešatmiņas izmantošana (mod_cache, mod_disk_cache).
    • FastCGI (PHP-FPM) integrācija un pieprasījumu proxy (mod_proxy, mod_proxy_http, mod_proxy_fcgi).
    • Kompresijas iestatīšana (mod_deflate).
  • Žurnālu veidošana un uzraudzība:
    • Pieejas žurnālu formātu konfigurācija (LogFormat, CustomLog).
    • Kļūdu žurnālu analīze (ErrorLog).
    • Integrācija ar uzraudzības sistēmām (piemēram, Prometheus Exporter, Nagios spraudņi).
    • mod_status izmantošana servera un pieprasījumu stāvokļa uzraudzībai.
  • Automatizācija un izvietošana:
    • Ansible playbooku rakstīšana Apache uzstādīšanai un konfigurēšanai.
    • Docker konteineru izmantošana.

Virtuālā hosta konfigurācijas piemērs:

# Virtuālā hosta konfigurācijas piemērs
<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āradresācija uz 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 # Ja ir

    # SSL drošības iestatījumi
    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>

Salīdzinot ar Nginx, arī ir pieredze, kas ļauj izvēlēties optimālo risinājumu konkrētam uzdevumam vai integrēt tos (piemēram, Apache kā backend Nginx aiz).