Intern
Pracovali ste s Apache HTTP Server?
sobes.tech AI
Odpoveď od AI
Áno, pracoval som. Mám skúsenosti s nastavovaním, optimalizáciou a podporou Apache HTTP Server v rôznych infraštruktúrach.
Hlavné oblasti práce:
- Inštalácia a základná konfigurácia:
- Kompilácia zo zdrojových kódov a inštalácia z balíkov (
apt,yum). - Úprava hlavného konfiguračného súboru
httpd.conf(aleboapache2.conf). - Nastavenie portov na počúvanie (
Listen).
- Kompilácia zo zdrojových kódov a inštalácia z balíkov (
- Virtuálne hosty (Virtual Hosts):
- Vytváranie a konfigurácia virtuálnych hostov pre umiestnenie viacerých stránok na jednom serveri.
- Konfigurácia na základe mena (
Name-based Virtual Hosts) a IP adresy (IP-based Virtual Hosts). - Použitie direktív
ServerName,ServerAlias,DocumentRoot.
- Moduly Apache (Modules):
- Zapnutie a vypnutie modulov (napríklad
mod_rewrite,mod_ssl,mod_proxy). - Konfigurácia špecifických modulov, napríklad pravidiel pre prepis URL (
mod_rewrite). - Práca s MPM (Multi-Processing Modules) —
prefork,worker,event.
- Zapnutie a vypnutie modulov (napríklad
- Bezpečnosť:
- Konfigurácia SSL/TLS s použitím
mod_ssla Let's Encrypt alebo iných certifikátov. - Obmedzenie prístupu podľa IP (
Order,Deny,Allow). - Konfigurácia autentifikácie (
Basic,Digest) s použitím.htaccessalebo konfiguračných súborov. - Ochrana pred bežnými útokmi (napríklad DDoS, SQL Injection - v spojení s WAF).
- Konfigurácia SSL/TLS s použitím
- Výkon a škálovanie:
- Optimalizácia nastavení MPM (
MaxRequestWorkers,StartServers,MinSpareServers,MaxSpareServers). - Použitie cache (
mod_cache,mod_disk_cache). - Integrácia s FastCGI (PHP-FPM) a proxy požiadaviek (
mod_proxy,mod_proxy_http,mod_proxy_fcgi). - Nastavenie kompresie (
mod_deflate).
- Optimalizácia nastavení MPM (
- Logovanie a monitoring:
- Nastavenie formátov logov prístupu (
LogFormat,CustomLog). - Analýza chybových logov (
ErrorLog). - Integrácia s monitorovacími systémami (napríklad, Prometheus Exporter, Nagios plugins).
- Použitie
mod_statusna monitorovanie stavu servera a požiadaviek.
- Nastavenie formátov logov prístupu (
- Automatizácia a nasadenie:
- Písanie Ansible playbookov na inštaláciu a konfiguráciu Apache.
- Použitie Docker kontajnerov s Apache.
Príklad konfigurácie virtuálneho hosta:
# Príklad konfigurácie virtuálneho 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>
# Presmerovanie 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 # Ak je
# Odporúčané bezpečnostné nastavenia 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>
S porovnaním s Nginx mám tiež skúsenosti, čo umožňuje vybrať optimálne riešenie pre konkrétnu úlohu alebo ich integrovať (napríklad Apache ako backend za Nginx).