Intern
Работили ли сте с Apache HTTP Server?
sobes.tech AI
Отговор от AI
Да, работил съм. Имам опит в конфигурирането, оптимизирането и поддръжката на Apache HTTP Server в различни инфраструктури.
Основни области на работа:
- Инсталиране и базова конфигурация:
- Компилиране от изходен код и инсталиране от пакети (
apt,yum). - Редактиране на основния конфигурационен файл
httpd.conf(илиapache2.conf). - Настройка на портовете за слушане (
Listen).
- Компилиране от изходен код и инсталиране от пакети (
- Виртуални хостове:
- Създаване и настройка на виртуални хостове за няколко сайта на един сървър.
- Конфигуриране на базата на име (
Name-based Virtual Hosts) и IP адрес (IP-based Virtual Hosts). - Използване на
ServerName,ServerAlias,DocumentRootдирективи.
- Модули на Apache:
- Включване и изключване на модули (например
mod_rewrite,mod_ssl,mod_proxy). - Конфигуриране на специфични модули, като правила за пренаписване на URL (
mod_rewrite). - Работа с MPM (Multi-Processing Modules) —
prefork,worker,event.
- Включване и изключване на модули (например
- Сигурност:
- Конфигуриране на SSL/TLS с
mod_sslи Let's Encrypt или други сертификати. - Ограничаване на достъпа по IP (
Order,Deny,Allow). - Настройка на автентикация (
Basic,Digest) с.htaccessили конфигурационни файлове. - Защита срещу разпространени атаки (например DDoS, SQL Injection - в съчетание с WAF).
- Конфигуриране на SSL/TLS с
- Производителност и мащабиране:
- Оптимизация на настройките на MPM (
MaxRequestWorkers,StartServers,MinSpareServers,MaxSpareServers). - Използване на кеширане (
mod_cache,mod_disk_cache). - Интеграция с FastCGI (PHP-FPM) и проксиране на заявки (
mod_proxy,mod_proxy_http,mod_proxy_fcgi). - Настройка на компресия (
mod_deflate).
- Оптимизация на настройките на MPM (
- Логиране и мониторинг:
- Настройка на формати за логове за достъп (
LogFormat,CustomLog). - Анализ на логовете за грешки (
ErrorLog). - Интеграция със системи за мониторинг (например, Prometheus Exporter, Nagios plugins).
- Използване на
mod_statusза мониторинг на състоянието на сървъра и заявките.
- Настройка на формати за логове за достъп (
- Автоматизация и внедряване:
- Написване на Ansible плейбукове за инсталиране и настройка на Apache.
- Използване на Docker контейнери с Apache.
Пример за конфигурация на виртуален хост:
# Пример за конфигурация на виртуален хост
<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
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 # Ако съществува
# Препоръчителни настройки за сигурност на 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>
Имам и опит с Nginx, което позволява избор на най-оптималното решение за конкретна задача или тяхната интеграция (например, Apache като бекенд зад Nginx).