Apache

Материал из Энциклопедия интернет-маркетинга MarketWiki
(перенаправлено с «Apache HTTP Server»)

Apache (Apache HTTP Server) - свободный веб-сервер с открытым исходным кодом, разрабатываемый и поддерживаемый сообществом Apache Software Foundation. Apache является одним из самых популярных веб-серверов в мире, на котором работает значительная доля всех сайтов интернета.

В интернет-маркетинге и SEO знание основ работы Apache необходимо для понимания того, как настраиваются редиректы, .htaccess, управление доступом и другие технические аспекты, влияющие на работу сайта.

История

[править]

Apache был создан в 1995 году на основе NCSA HTTPd и быстро стал популярным благодаря своей надёжности и расширяемости. Название происходит от "a patchy server" - "сервер с заплатками", что отражало его модульную архитектуру.

На протяжении многих лет Apache оставался самым популярным веб-сервером в мире. В последние годы его доля снижается из-за роста популярности Nginx, особенно для высоконагруженных проектов, но Apache по-прежнему широко используется на миллионах сайтов.

Архитектура

[править]

Apache построен на модульной архитектуре, что позволяет добавлять или удалять функции в зависимости от потребностей.

Основные модули

[править]
  • mod_rewrite - для настройки правил перенаправления и ЧПУ
  • mod_alias - для простых редиректов
  • mod_headers - для управления HTTP-заголовками
  • mod_expires - для управления кэшированием
  • mod_deflate - для сжатия данных
  • mod_ssl - для поддержки HTTPS
  • mod_security - для защиты от атак
  • mod_proxy - для работы в качестве прокси-сервера

MPM (Multi-Processing Modules)

[править]

Apache поддерживает несколько моделей обработки запросов:

  • prefork - один процесс на одно соединение (устаревшая модель)
  • worker - многопоточная модель
  • event - асинхронная модель (рекомендуется для современных проектов)

Конфигурационные файлы

[править]

Настройка Apache осуществляется через текстовые конфигурационные файлы.

Основные файлы конфигурации

[править]
  • httpd.conf - главный конфигурационный файл
  • apache2.conf - на Debian/Ubuntu системах
  • sites-available/ - директория с конфигурациями отдельных сайтов
  • sites-enabled/ - символические ссылки на включённые сайты
  • mods-available/ и mods-enabled/ - директории для модулей

.htaccess

[править]

Файлы .htaccess позволяют изменять конфигурацию для конкретных директорий без прав на изменение основных файлов. Это удобно для пользователей shared-хостинга, но снижает производительность, так как файл обрабатывается при каждом запросе.

Популярные настройки

[править]

Наиболее часто используемые возможности Apache в контексте веб-разработки и SEO.

Настройка виртуальных хостов

[править]

Позволяет размещать несколько сайтов на одном сервере.

<VirtualHost *:80>
    ServerName marketwiki.ru
    ServerAlias www.marketwiki.ru
    DocumentRoot /var/www/marketwiki
    ErrorLog /var/log/apache2/marketwiki-error.log
    CustomLog /var/log/apache2/marketwiki-access.log combined
</VirtualHost>

Настройка HTTPS

[править]
<VirtualHost *:443>
    ServerName marketwiki.ru
    DocumentRoot /var/www/marketwiki
    SSLEngine on
    SSLCertificateFile /path/to/certificate.crt
    SSLCertificateKeyFile /path/to/private.key
    SSLCertificateChainFile /path/to/chain.crt
</VirtualHost>

Редиректы

[править]

Настройка перенаправлений с помощью mod_alias или mod_rewrite.

# Простой редирект с помощью mod_alias
Redirect 301 /old-page.html /new-page.html

# Сложный редирект с помощью mod_rewrite
RewriteEngine On
RewriteRule ^old-category/(.*)$ /new-category/$1 [R=301,L]

Управление доступом

[править]
<Directory /var/www/admin>
    Require ip 192.168.1.0/24
    Require user admin
</Directory>

Настройка страниц ошибок

[править]
ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
ErrorDocument 500 /500.html

Apache vs Nginx

[править]

Основные различия между двумя самыми популярными веб-серверами.

Параметр Apache Nginx
Архитектура Процессно-ориентированная Событийно-ориентированная
Обработка соединений Один процесс/поток на соединение Асинхронная, много соединений в одном процессе
Потребление памяти Выше при большом количестве соединений Ниже
Скорость обработки статики Средняя Высокая
Гибкость настройки Высокая (.htaccess, множество модулей) Средняя (настройки на уровне сервера)
Популярность Высокая, особенно на shared-хостинге Высокая, особенно для высоконагруженных проектов

Типичные проблемы и их решение

[править]

Ошибка 403 Forbidden

[править]

Возникает при неправильных правах доступа к файлам или директориям. Решение: проверить права (должны быть 644 для файлов, 755 для директорий).

Ошибка 500 Internal Server Error

[править]

Общая ошибка сервера. Причины могут быть в неправильном синтаксисе .htaccess, ошибках в PHP-скриптах, проблемах с модулями. Решение: проверить логи ошибок.

Бесконечные редиректы

[править]

Возникают при неправильной настройке правил редиректа. Решение: проверить цепочки редиректов в конфигурации.

Медленная работа

[править]

Причины: недостаточно памяти, неправильные настройки MPM, отсутствие кэширования. Решение: оптимизировать конфигурацию, включить кэширование, использовать более производительный MPM (event).

Связанные термины

[править]