Intern
Да ли сте радили са Apache HTTP Server-ом?
sobes.tech АИ
Одговор од АИ
Da, radio sam. Imam iskustvo u konfiguraciji, optimizaciji i podršci Apache HTTP Server-a u različitim infrastrukturnim okruženjima.
Glavne oblasti rada:
- Instalacija i osnovna konfiguracija:
- Kompajliranje iz izvornog koda i instalacija iz paketa (
apt,yum). - Izmena glavne konfiguracione datoteke
httpd.conf(iliapache2.conf). - Podešavanje portova za slušanje (
Listen).
- Kompajliranje iz izvornog koda i instalacija iz paketa (
- Virtuelni hostovi:
- Kreiranje i konfiguracija virtuelnih hostova za više sajtova na jednom serveru.
- Konfiguracija na osnovu imena (
Name-based Virtual Hosts) i IP adrese (IP-based Virtual Hosts). - Korišćenje direktiva
ServerName,ServerAlias,DocumentRoot.
- Moduli Apache:
- Uključivanje i isključivanje modula (npr.
mod_rewrite,mod_ssl,mod_proxy). - Konfiguracija specifičnih modula, kao što su pravila prepisivanja URL (
mod_rewrite). - Rad sa MPM (Multi-Processing Modules) —
prefork,worker,event.
- Uključivanje i isključivanje modula (npr.
- Bezbednost:
- Konfiguracija SSL/TLS sa
mod_ssli Let's Encrypt ili drugim sertifikatima. - Ograničavanje pristupa po IP (
Order,Deny,Allow). - Podešavanje autentifikacije (
Basic,Digest) pomoću.htaccessili konfiguracionih fajlova. - Zaštita od uobičajenih napada (npr. DDoS, SQL Injection - u kombinaciji sa WAF-om).
- Konfiguracija SSL/TLS sa
- Performanse i skaliranje:
- Optimizacija podešavanja MPM (
MaxRequestWorkers,StartServers,MinSpareServers,MaxSpareServers). - Korišćenje keširanja (
mod_cache,mod_disk_cache). - Integracija sa FastCGI (PHP-FPM) i proxy-ovanje zahteva (
mod_proxy,mod_proxy_http,mod_proxy_fcgi). - Podešavanje kompresije (
mod_deflate).
- Optimizacija podešavanja MPM (
- Logovanje i nadzor:
- Podešavanje formata logova pristupa (
LogFormat,CustomLog). - Analiza logova grešaka (
ErrorLog). - Integracija sa sistemima za nadzor (npr. Prometheus Exporter, Nagios plugins).
- Korišćenje
mod_statusza nadzor stanja servera i zahteva.
- Podešavanje formata logova pristupa (
- Automatizacija i implementacija:
- Pisanje Ansible playbook-ova za instalaciju i konfiguraciju Apache-a.
- Korišćenje Docker kontejnera sa Apache-om.
Primer konfiguracije virtuelnog hosta:
# Primer konfiguracije virtuelnog 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>
# Preusmeravanje 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 # Ako postoji
# Preporučene sigurnosne SSL postavke
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, което позволява избор на най-оптималното решение за конкретна задача или тяхната интеграция (например, Apache като бекенд зад Nginx).