Intern
Czy pracowałeś z Apache HTTP Server?
sobes.tech AI
Odpowiedź od AI
Tak, pracowałem. Mam doświadczenie w konfiguracji, optymalizacji i wsparciu Apache HTTP Server w różnych infrastrukturach.
Główne obszary pracy:
- Instalacja i podstawowa konfiguracja:
- Kompilacja ze źródeł i instalacja z pakietów (
apt,yum). - Edycja głównego pliku konfiguracyjnego
httpd.conf(lubapache2.conf). - Konfiguracja portów nasłuchiwania (
Listen).
- Kompilacja ze źródeł i instalacja z pakietów (
- Wirtualne hosty (Virtual Hosts):
- Tworzenie i konfiguracja wirtualnych hostów do obsługi wielu stron na jednym serwerze.
- Konfiguracja oparta na nazwie (
Name-based Virtual Hosts) i adresie IP (IP-based Virtual Hosts). - Użycie dyrektyw
ServerName,ServerAlias,DocumentRoot.
- Moduły Apache (Modules):
- Włączanie i wyłączanie modułów (np.
mod_rewrite,mod_ssl,mod_proxy). - Konfiguracja specyficznych modułów, takich jak reguły przepisywania URL (
mod_rewrite). - Praca z MPM (Multi-Processing Modules) —
prefork,worker,event.
- Włączanie i wyłączanie modułów (np.
- Bezpieczeństwo:
- Konfiguracja SSL/TLS z użyciem
mod_ssli Let's Encrypt lub innych certyfikatów. - Ograniczenie dostępu po IP (
Order,Deny,Allow). - Konfiguracja uwierzytelniania (
Basic,Digest) z użyciem.htaccesslub plików konfiguracyjnych. - Ochrona przed powszechnymi atakami (np. DDoS, SQL Injection - w połączeniu z WAF).
- Konfiguracja SSL/TLS z użyciem
- Wydajność i skalowalność:
- Optymalizacja ustawień MPM (
MaxRequestWorkers,StartServers,MinSpareServers,MaxSpareServers). - Użycie cache (
mod_cache,mod_disk_cache). - Integracja z FastCGI (PHP-FPM) i proxy requestów (
mod_proxy,mod_proxy_http,mod_proxy_fcgi). - Konfiguracja kompresji (
mod_deflate).
- Optymalizacja ustawień MPM (
- Logowanie i monitorowanie:
- Konfiguracja formatów logów dostępu (
LogFormat,CustomLog). - Analiza logów błędów (
ErrorLog). - Integracja z systemami monitorowania (np. Prometheus Exporter, Nagios plugins).
- Użycie
mod_statusdo monitorowania stanu serwera i zapytań.
- Konfiguracja formatów logów dostępu (
- Automatyzacja i wdrażanie:
- Pisanie playbooków Ansible do instalacji i konfiguracji Apache.
- Użycie kontenerów Docker z Apache.
Przykład konfiguracji wirtualnego hosta:
# Przykład konfiguracji wirtualnego 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>
# Przekierowanie 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 # Jeśli dostępny
# Zalecane ustawienia bezpieczeństwa 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>
Istnieje również doświadczenie w porównaniu z Nginx, co pozwala na wybór optymalnego rozwiązania dla konkretnego zadania lub ich integrację (np. Apache jako backend za Nginx).