Установка и настройка сервера apache
Содержание:
- Что такое Apache?
- Как работает веб-сервер Apache?
- Установка сервиса Apache2.2 в картинках
- Настройка Apache
- календарь эфиров Finversia-TV »
- Модульная архитектура Apache
- What happens when you turn off Google Voice texts and voicemail in Hangouts
- Apache и другие веб-сервера
- Обзор возможностей
- Шаг 2. Установка модуля SSL для Apache
- Сервер 1С:Предприятие на Ubuntu 16.04 и PostgreSQL 9.6, для тех, кто хочет узнать его вкус. Рецепт от Капитана
- Что такое веб-сервер?
- Обработка запросов
- Настройка
- Hostnames and DNS
- Рейтинг лучших электрошашлычниц 2020-2019
Что такое Apache?
HTTP-сервер
Apache — это программное обеспечение (или программа), которое работает в
фоновом режиме в соответствующей операционной системе, поддерживает
многозадачность и предоставляет услуги для других приложений, которые к ней
подключаются, например, клиентские веб-браузеры. Apache
был впервые разработан для работы с операционными системами Linux / Unix, но
позже был адаптирован для работы в других системах, включая Windows и Mac. Бинарный файл Apache, работающий под UNIX, называется HTTPd (сокращенно для HTTP-daemon), а под win32 называется Apache.exe.
Установка
Apache на Linux не требует много навыков программирования (хотя это не слишком
легко). Его установка на платформе Windows прямолинейна, так как вы
можете запускать ее через графический интерфейс пользователя.
Оригинальное
ядро Apache является довольно простым и содержит ограниченное количество
функций. Его
сила скорее связана с дополнительной функциональностью, внедренной во многие
модули, которые написаны программистами и могут быть установлены для расширения
возможностей сервера. Чтобы
добавить новый модуль, все, что вам нужно сделать, это установить его и
перезапустить сервер Apache. Функциональность,
в которой вы не нуждаетесь или хотите, может быть легко удалена, что на самом
деле считается хорошим моментом, так как она делает сервер маленьким и легким, он начинает работать быстрее, потребляет меньше системных ресурсов и памяти и делает сервер
менее подверженным уязвимостям в плане безопасности. Сервер
Apache также поддерживает сторонние модули, некоторые из которых были добавлены
в Apache 2 как постоянные функции. Сервер
Apache очень легко интегрируется с другими приложениями с открытым исходным
кодом, такими как PHP и MySQL, что делает его еще более мощным, чем он есть.
Каждое
устройство, подключенное к сети, имеет IP-адрес, через который другие подключаются к нему и общаются с ним. Этот
IP-адрес похож на обычный адрес, который вам нужен в реальной жизни, чтобы
позвонить или посетить кого-то. Если у
них нет адреса, вы не знаете, как позвонить или связаться с ними. IP-адреса
служат точно для такой же цели. Если у
устройства не было такого устройства, другие компьютеры в той же сети не знали
бы, как его достичь.
Сервер
Apache предлагает ряд услуг, которые клиенты могут использовать. Эти
службы предлагаются с использованием различных протоколов через разные порты и включают
в себя: протокол передачи гипертекста (HTTP), обычно через порт 80, простой
протокол передачи почты (SMTP), обычно через порт 25, службу доменных имен
(DNS) для сопоставления доменных имен их соответствующие IP-адреса, обычно
через порт 53 и протокол передачи файлов (FTP) для загрузки и скачивания
файлов, обычно через порт 21.
Как работает веб-сервер Apache?
Хоть Apache и называется веб-сервер, но в реальном положении вещей он является не сервером, а программой, которая запускается на сервере. Его задача установить соединение между сервером и браузером посетителей (Firefox, Google Chrome, Safari и др.) при доставке файлов туда и обратно между ними (клиент-серверная структура). Apache – это кроссплатформенное программное обеспечение, что значит оно хорошо работает как на Unix, так и на Windows серверах.
Когда посетитель хочет загрузить страницу вашего сайта, например, домашнюю страницу или страницу «О нас», его браузер отправляет запрос на ваш сервер и Apache возвращает ответ со всеми запрошенными файлами (текст, изображение и так далее). Сервер и клиент взаимодействуют по протоколу HTTP и Apache ответственен за гладкое и безопасное соединение между двумя машинами.
Apache хорошо и удобно настраиваемый поскольку имеет модульную структуру. Модули позволяют администраторам сервера включать или выключать дополнительную функциональность. У Apache есть модули безопасности, кэширования, редактирования URL, аутентификации по средством пароля и другие. Вы можете установить свою собственную конфигурацию через файл .htaccess, который является файлом настроек для Apache и поддерживается всеми тарифными планами Hostinger.
Знаете ли вы, что в Hostinger есть специальные предложения? Посетите нашу страницу купонов и сэкономьте до 82%!
Не стоит забывать, что это предложение ограничено во времени!
Использовать Купон
Установка сервиса Apache2.2 в картинках
Запускаем командную строку и вводим в ней «C:\Apache2\bin\httpd.exe -k install»
Вот что мы должны увидеть при успешной установке сервиса Apache2.2.
Создание структуры каталогов виртуальных хостовПример создания виртуального хоста<VirtualHost *:80>
# Папка, в которой будет корень вашего хоста.
DocumentRoot «C:/apache/test.ru/www»
# Домен по которому вы сможете обращаться к виртуальному хосту.
ServerName test.ru
# Алиас (добавочное имя) домена.
ServerAlias www.test.ru
# Файл, в который будут записываться ошибки.
ErrorLog «C:/apache/test.ru/error.log»
# Файл журнала доступа к хосту.
CustomLog «C:/apache/test.ru/access.log» common
</VirtualHost>127.0.0.1 test.ru
127.0.0.1 www.test.ruСоздание пакетных файлов для запуска и остановки сервисов127.0.0.1 localhost127.0.0.1 localhost
127.0.0.1 www.test.ru
127.0.0.1 test.ru@echo off
echo.
if not exist C:\apache\vhosts-on.txt goto no_vhosts
echo Create virtual hosts:
copy /v /y C:\apache\vhosts-on.txt C:\WINDOWS\system32\drivers\etc\hosts
echo.
:no_vhosts
NET start Apache2.2
NET start MySQL@echo off
echo.
if not exist C:\apache\vhosts-off.txt goto no_vhosts
echo Restore hosts file:
copy /v /y C:\apache\vhosts-off.txt C:\WINDOWS\system32\drivers\etc\hosts
echo.
:no_vhosts
NET stop Apache2.2
NET stop MySQLstart «» «C:\Apache2\bin\ApacheMonitor.exe»
« Установка PHP 5.3.10 — Предыдущий раздел | Следующий раздел — Установка phpMyAdmin 3.5.0 » |
Настройка Apache
Уже прошло то время, когда конфигурация Apache хранилась в одном файле. Но оно и правильно, когда все распределено по своим директориям, в конфигурационных файлах легче ориентироваться.
Все настройки содержатся в папке /etc/apache/:
- Файл /etc/apache2/apache2.conf отвечает за основные настройки
- /etc/apache2/conf-available/* — дополнительные настройки веб-сервера
- /etc/apache2/mods-available/* — настройки модулей
- /etc/apache2/sites-available/* — настойки виртуальных хостов
- /etc/apache2/ports.conf — порты, на которых работает apache
- /etc/apache2/envvars
Как вы заметили есть две папки для conf, mods и site. Это available и enabled. При включении модуля или хоста создается символическая ссылка из папки available (доступно) в папку enable (включено). Поэтому настройки лучше выполнять именно в папках available. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.
Сначала давайте рассмотрим главный файл конфигурации:
Timeout — указывает как долго сервер будет пытаться продолжить прерванную передачу или прием данных. 160 секунд будет вполне достаточно.
KeepAlive On — очень полезный параметр, позволяет передавать несколько файлов, за одно соединение, например, не только саму html страницу, но и картинки и css файлы.
MaxKeepAliveRequests 100 — максимальное количество запросов за одно соединение, чем больше, тем лучше.
KeepAliveTimeout 5 — таймаут соединения, обычно для загрузки страницы достаточно 5-10 секунд, так что больше ставить не нужно, но и рвать соединение раньше чем загрузились все данные тоже не нужно.
User, Group — пользователь и группа, от имени которых будет работать программа.
HostnameLookups — записывать в логи вместо ip адресов доменные имена, лучше отключить, чтобы ускорить работу.
LogLevel — уровень логирования ошибок. По умолчанию используется warn, но чтобы логи заполнялись медленнее достаточно включить error
Include — все директивы include отвечают за подключение рассмотренных выше конфигурационных файлов.
Директивы Directory отвечают за настройку прав доступа к той или иной директории в файловой системе. Синтаксис здесь такой:
Здесь доступны такие основные опции:
AllowOverride — указывает нужно ли читать .htaccess файлы из этой директории, это такие же файлы настроек и таким же синтаксисом. All — разрешать все, None — не читать эти файлы.
DocumentRoot — устанавливает из какой папки нужно брать документы для отображенияа пользователю
Options — указывает какие особенности веб-сервера нужно разрешить в этой папке. Например, All — разрешить все, FollowSymLinks — переходить по символическим ссылкам, Indexes — отображать содержимое каталога если нет файла индекса.
Require — устанавливает, какие пользователи имеют доступ к этому каталогу. Require all denied — всем запретить, Require all granted — всем разрешить. можно использовать вместо all директиву user или group чтобы явно указать пользователя.
Order — позволяет управлять доступом к директории. Принимает два значения Allow,Deny — разрешить для всех, кроме указанных или Deny,Allow — запретить для всех, кроме указанных. Теперь мы можем запретить доступ к директории для всех: Deny from all, а затем разрешить только для приложения от losst.ru: Allow from losst.ru.
Здесь все эти директивы не используются, поскольку нас устраивают значения по умолчанию, но вот в файлах .htaccess они могут быть очень полезны.
У нас остался файл /etc/apache2/ports.conf:
В нем только одна директива, Listen, которая указывает программе на каком порту нужно работать.
Последний файл /etc/apache2/envvars, его вы вряд ли будете использовать, в нем указанны переменные, которые можно использовать в других конфигурационных файлах.
Дальше поговорим немного о htacess. Совсем немного.
календарь эфиров Finversia-TV »
Модульная архитектура Apache
Ядро Apache включает в себя основные функциональные возможности, такие как обработка конфигурационных файлов, протокол HTTP и система загрузки модулей. Ядро (в отличие от модулей) полностью разрабатывается Apache Software Foundation, без участия сторонних программистов. Запускается Apache от рутового пользователя, а все последующие операции выполняет от лица непривилегированного пользователя.
Модули представляют из себя код, расширяющий функционал Apache. Модули могут быть статически слинкованы с ядром, либо загружаться динамически. В первом случае они собираются на этапе компиляции самого Apache. Во втором случае они загружаются при загрузке Apache, для этого есть дополнительный встроенный модуль mod_so.
Кроме того, имеется набор библиотек — Apache Portable Runtime (APR), который реализует кросс-платформенную поддержку системных функций.
Специальный модуль системного уровня — Multi-Processing Module (MPM) — дает возможность оптимизировать Apache в условиях конкретной операционной системы, предоставляя еще один вариант доступа к системным сервисам.
После стартовой начальной инициализации ядро передает управление модулю MPM, который поддерживает пул рабочих процессов/потоков, реализует интерфейс между сервером и данной операционной системой, оптимизируя работу сервера. MPM появился тогда, когда Apache был перенесен на Windows.
MPM имеет 2 основных режима работы:
- Prefork — это традиционный non-threaded вариант, присущий версии 1.3.
- Worker — многопоточный вариант, которому присущ меньший расход памяти.
Модуль взаимодействует с ядром с помощью простого интерфейса: в ядре регистрируется обработчик (handler), который потом может быть вызван. Также модуль может взаимодействовать с ядром с помощью специальных Apache API, которые позволяют модулям работать со структурами данных ядра.
Существует 4 основных типа обработчиков:
- Обработчики-переключатели.
- Конфигурационные обработчики.
- Фильтры.
- Функции-опции.
Обработчики-переключатели занимаются переключением обработчиков, выполняя роль событийного триггера. Такой обработчик имеет префикс ap_run_HOOKNAME. Они бывают двух типов:
- RUN_ALL/VOID — вызываются всегда, независимо от статуса выполняемой задачи;
- RUN_FIRST — вызываются до тех пор, пока задача не выполнена.
Модуль регистрирует в первую очередь обработчики этого типа. Вообще регистрация обработчиков отличается в первом и во втором Apache. В первом все обработчики регистрируются автоматически при старте. Во втором модуль регистрирует 4 обработчика-переключателя, остальные регистрируются потом с помощью функции ap_run_xxx.
Порядок, в котором вызываются переключатели, для первого Apache тот же, в котором они регистрируются. Во втором Apache механизм изменился: вызов ap_hook_xxx может изменить порядок регистрируемого переключателя. Каждый модуль может определить собственный набор конфигурационных директив. Конфигурационные обработчики выделяют память для чтения таких директив и определяют, что с ними делать.
Фильтры и функции-опции появились во втором Apache. Функции-опции похожи на обработчики.
What happens when you turn off Google Voice texts and voicemail in Hangouts
Apache и другие веб-сервера
Кроме Apache существует ещё довольно много веб-серверов. Каждое приложение веб-сервера создавалось для различных целей. Не смотря на то, что Apache является самый широко используемым, для него есть несколько альтернатив и конкурентов.
Apache или NGINX
Nginx произносится как Engine-X, это более новое веб-серверное программное обеспечение с первым релизом в 2004 году. Как на сегодня он добился большой популярности среди владельцев сайтов. Nginx был создан для решения так называемой проблемы c10k – проблемы 10 тысяч соединений, что означает, что веб-сервера, использующие потоки не могут обрабатывать запросы пользователей более, чем с 10 000 подключений одновременно.
- Так как Apache использует структуру основанную на потоках, владельцы сайтов с высоким трафиком могли столкнуться с проблемой производительности. Nginx один из веб-серверов, который был нацелен на решение проблемы c10k и возможно это одно из самых успешных решений.
- Nginx имеет событийно ориентированную архитектуру, которая не создаёт новый процесс для каждого запроса. Вместо этого он обрабатывает каждый входящий запрос в едином потоке. Этот главный процесс управляет несколькими рабочими процессами, которые выполняют непосредственную обработку запросов. Модель Nginx, основанная на событиях распространяет запросы пользователей среди рабочих процессов эффективным путём, что приводит к лучшей масштабируемости.
- Если вам нужно обслуживание сайта с высокой посещаемостью, то Nginx – отличный выбор, поскольку он может сделать это, затратив минимальные ресурсы. И не случайно он используется сайтами с большим количеством показов, такими как: Netflix, Hulu, Pinterest и Airbnb.
- Однако для мелких и средних игроков, Apache имеет несколько преимуществ в сравнении с Nginx, среди которых: более простая настройка, множество модулей и среда дружественная для начинающих.
Apache или Tomcat
Tomcat – это веб-сервер также разработанных Apache Software Foundation, поэтому его официальное название Apache Tomcat. Это тоже HTTP-сервер, однако он обрабатывает приложения Java вместо статических сайтов. Tomcat может запускать несколько Java спецификаций, таких как: Java Servlet, Java Server Pages (JSP), Java EL и WebSocket.
- Tomcat был разработан специально для приложений на Java, в то время как Apache позиционируется как HTTP-сервер. Вы можете использовать Apache совместно с другими языками программирования (PHP, Python, Perl и т.д.) с помощью специального модуля Apache (mod_php, mod_python, mod_perl и др.).
- Хотя вы и можете использовать сервер Tomcat для статических веб-страниц, но это будет менее эффективно, чем использование Apache. Например, Tomcat заранее загружает виртуальную машину Java и другие Java-библиотеки, которые могут быть ненужными для работы вашего сайта.
- Tomcat также хуже настраиваемых в сравнении с другими веб-серверами. Например, для запуска WordPress, лучшим выбором будет стандартный HTTP-сервер, такой как Apache или NGINX.
Обзор возможностей
Apache поддерживает множество функций, многие из которых реализованы в виде скомпилированных модулей, расширяющих основные функции. Они могут варьироваться от схем аутентификации до поддержки серверных языков программирования, таких как Perl , Python , Tcl и PHP . Популярные модули аутентификации включают mod_access, mod_auth, mod_digest и mod_auth_digest, преемника mod_digest. Примеры других функций включают поддержку Secure Sockets Layer и Transport Layer Security ( mod_ssl ), модуль прокси ( mod_proxy ), модуль перезаписи URL (mod_rewrite), пользовательские файлы журналов (mod_log_config) и поддержку фильтрации (mod_include и mod_ext_filter).
Популярные методы сжатия в Apache включают внешний модуль расширения, mod_gzip, реализованный для уменьшения размера (веса) веб-страниц, обслуживаемых через HTTP . ModSecurity — это механизм обнаружения и предотвращения вторжений с открытым исходным кодом для веб-приложений. Журналы Apache можно анализировать через веб-браузер с помощью бесплатных скриптов, таких как AWStats / W3Perl или Visitors.
Виртуальный хостинг позволяет одной установке Apache обслуживать множество разных веб-сайтов . Например, один компьютер с одним установка Apache может одновременно обслуживать , , и т.д.
Apache особенности конфигурируемые сообщения об ошибках, СУБД -На базы данных аутентификации, согласование содержания и поддерживает несколько графических пользовательских интерфейсов (GUI).
Он поддерживает аутентификацию по паролю и аутентификацию с цифровым сертификатом . Поскольку исходный код находится в свободном доступе, любой может адаптировать сервер под конкретные нужды, а также существует большая публичная библиотека надстроек Apache.
Более подробный список возможностей представлен ниже:
- Загружаемые динамические модули
- Несколько режимов обработки запросов (MPM), включая Event-based / Async , Threaded и Prefork.
- Высокая масштабируемость (легко обрабатывает более 10 000 одновременных подключений )
- Обработка статических файлов, индексных файлов, автоиндексирование и согласование содержимого
- .htaccess поддержка конфигурации для каждого каталога
-
Обратный прокси с кешированием
- Балансировка нагрузки с внутренними проверками работоспособности
- Множественные механизмы балансировки нагрузки
- Отказоустойчивость и отказоустойчивость с автоматическим восстановлением
- Поддержка WebSocket , FastCGI , SCGI , AJP и uWSGI с кешированием
- Динамическая конфигурация
- TLS / SSL с поддержкой сшивания SNI и OCSP через OpenSSL или wolfSSL .
- Виртуальные серверы на основе имени и IP-адреса
- IPv6- совместимый
- Поддержка HTTP / 2
- Детальная проверка подлинности и контроль доступа авторизации
- сжатие и распаковка gzip
- Перезапись URL
- Перезапись заголовков и контента
- Пользовательское ведение журнала с ротацией
- Ограничение одновременных подключений
- Ограничение скорости обработки запросов
- Регулирование полосы пропускания
- Серверная сторона включает
- Геолокация на основе IP-адреса
- Отслеживание пользователей и сеансов
- WebDAV
- Встроенные сценарии Perl , PHP и Lua
- Поддержка CGI
- веб-страницы для каждого пользователя
- Анализатор универсальных выражений
- Просмотр статуса в реальном времени
- Поддержка XML
- Поддержка FTP (отдельным модулем)
Шаг 2. Установка модуля SSL для Apache
Прежде, чем устанавливать модуль, выполняем команду:
apachectl -M | grep ssl
Если видим строчку, на подобие:
ssl_module (shared)
Спускаемся к шагу 3 данной инструкции.
Иначе, устанавливаем httpd ssl_module.
а) Для CentOS:
yum install mod_ssl
б) Для Ubuntu/Debian:
a2enmod ssl
в) Для FreeBSD:
Открываем файл конфигурации apache:
ee /usr/local/etc/apache24/httpd.conf
* подразумевается, что используется apache 2.4.
Находим и снимаем комментарии со следующих строчек:
…
LoadModule ssl_module libexec/apache24/mod_ssl.so
…
Include etc/apache24/extra/httpd-ssl.conf
…
И ставим комментарии в следующих строках:
#<IfModule ssl_module>
#SSLRandomSeed startup builtin
#SSLRandomSeed connect builtin
#</IfModule>
Чтобы настройки применились, необходимо перезапустить веб-сервер одной из команд:
systemctl restart httpd
systemctl restart apache2
service apache2 restart
* первая, как правило, используется в системах на базе RPM, вторая — DEB, третья — BSD.
Сервер 1С:Предприятие на Ubuntu 16.04 и PostgreSQL 9.6, для тех, кто хочет узнать его вкус. Рецепт от Капитана
Если кратко описать мое отношение к Postgres: Использовал до того, как это стало мейнстримом.
Конкретнее: Собирал на нем сервера для компаний среднего размера (до 50 активных пользователей 1С).
На настоящий момент их набирается уже больше, чем пальцев рук пары человек (нормальных, а не фрезеровщиков).
Следуя этой статье вы сможете себе собрать такой же и начать спокойную легальную жизнь, максимально легко сделать первый шаг в мир Linux и Postgres.
А я побороться за 1. Лучший бизнес-кейс (лучший опыт автоматизации предприятия на базе PostgreSQL).
Если, конечно, статья придется вам по вкусу.
Что такое веб-сервер?
Обработка файлов, обработка баз данных, почты и веб-сервер использует различные виды серверного программного обеспечения. Каждое из этих приложений может иметь доступ к файлам, хранящимся на реальном сервере и использовать их в различных целях.
Работа веб-сервера – обслуживать сайт в интернете. Для этого он выполняет роль посредника между компьютером сервера и компьютером клиента. Он берёт контент с сервера на каждый запрос пользователя и доставляет его в сеть.
Самой большой задачей веб-сервера является одновременное обслуживание различных запросов от многих пользователей. Веб-сервер обрабатывает файлы написанные на разных языках программирования, таких как PHP, Python, Java и другие.
Он превращает их в статический файл HTML и отдаёт их на обслуживание в браузер пользователя. Когда вы слышите словосочетание веб-сервер, думайте о нём, как об инструменте для коммуникации между сервером и клиентом.
Обработка запросов
Большинство модулей Apache имеют непосредственное отношение к обработке клиентских запросов, участвуя в этом процессе в определенной последовательности. Такой подход позволяет каждому модулю сфокусироваться на узком аспекте обработки.
Веб-сервер возвращает клиенту ответ, формируемый генератором контента. Любой модуль может зарегистрировать свой генератор с помощью директив SetHandler или AddHandler в файле httpd.conf. Если такой регистрации нет, то генератор по умолчанию просто возвращает файл, получаемый напрямую из запроса. Модули, которые реализуют свои собственные генераторы, называются контент-генераторами. Такой генератор в принципе может управлять всеми функциями. Например, CGI программа, получившая запрос, генерирует ответ, полностью контролируя этот процесс.
Apache разбивает запрос на несколько фаз, например, проверяет авторизацию пользователя. Непосредственно самой генерации предшествуют несколько стадий, например:
- URL проверяется на предмет наличия для него предопределенного конфигурационного генератора контента.
- URL транслируется на файловую систему, результатом чего может быть статичный файл, CGI-скрипт.
- Может быть включен модуль mod_negotiation для определения версии ресурса.
- Может происходить проверка доступа.
- Модули mod_alias или mod_rewrite могут изменить текущий URL.
Запрос может быть обработан нестандартным образом в силу следующих причин:
- Может быть сгенерирован дополнительный вложенный запрос или выдан документ с ошибкой.
- Могут быть добавлены дополнительные фазы обработки запроса.
- Хук (hook) quick_handler может быть запущен модулем кеширования.
Для изменения процесса обработки запроса существует механизм хуков. К ним в первую очередь относятся:
- post_read_request — этот хук может быть запущен на ранней стадии обработки запроса.
- translate_name — трансляция URL.
- map_to_storage — читает опции конфигурации.
- header_parser — запускается в начале обработки для чтения заголовков.
- access_checker — этот хук может заменить стандартную логику проверки прав доступа.
- check_user_id — назначает аутентификацию.
- type_checker — назначает обработчик контента.
- fixups — применяется непосредственно перед генерацией контента для его окончательной корректировки, один из наиболее часто используемых хуков.
- handler — отсылает контент клиенту.
Модуль может использовать хуки в любой точке обработки запроса. В дополнение к этим стандартным хукам модуль может определить свои собственные хуки.
Главным отличием второго Apache является появление фильтров. Фильтры бывают входящими и выходящими. Когда стоит дилемма в выборе между хуком и фильтром, фильтр нужно реализовывать случае, если модуль обрабатывает входные и выходные данные и используется во многих приложениях.
Примеры модулей, реализованных как фильтры:
- mod_include — подключает скрипты.
- mod_ssl — реализует защищенный протокол.
- обработка картинок.
- mod_form, mod_upload — обработка форм и загрузок.
- mod_deflate — сжатие данных.
Обычно каждый модуль Apache декларирует набор данных и функций:
module AP_MODULE_DECLARE_DATA my_module = { STANDARD20_MODULE_STUFF, /* версионность */ my_dir_conf, /* локальная конфигурация */ my_dir_merge, my_server_conf, /* генеральная конфигурация */ my_server_merge, my_cmds, /* директивы конфигурации */ my_hooks /* обработчики, регистрируемые в ядре */ };
Функция для обработки запроса:
static void my_hooks(apr_pool_t *pool) { ... }
Хук для генератора контента:
ap_hook_handler(my_handler, NULL, NULL, APR_HOOK_MIDDLE);
Когда начнется генерация контента, будет вызван my_handler:
static int my_handler(request_rec *r) { ... }
Настройка
Для применения изменений в настройках необходимо перезапустить демон Apache:
sudo service apache2 restart
/etc/apache2/ |-- apache2.conf | `-- ports.conf |-- mods-enabled | |-- *.load | `-- *.conf |-- conf-enabled | `-- *.conf `-- sites-enabled `-- *.conf
Настройки модулей расположены в директории /etc/apache2/mods-available. Для подключения или отключения модулей (настроек модулей) следует использовать соответствующие команды или . Пример подключения модуля:
sudo a2enmod <mod-name>
Свои настройки следует сохранять в файлы, расположенные в директории /etc/apache2/conf-available. Для подключения или отключения своих настроек следует использовать соответствующие команды или . Пример подключения файла со своими настройками:
sudo a2enconf <config-name>
Настройки виртуальных хостов следует сохранять в файлы, расположенные в директории /etc/apache2/sites-available. Для подключения виртуальных хостов следует использовать соответствующие команды или . Пример подключения виртуального хоста:
sudo a2ensite <site-name>
Кодировка по умолчанию
Для указания кодировки по умолчанию следует использовать директиву в файле /etc/apache2/conf-available/charset.conf (или раскомментировать соответствующую строку):
AddDefaultCharset UTF-8
Виртуальные хосты
Файлы настроек виртуальных хостов хранятся в /etc/apache2/sites-available/*.conf. По умолчанию в Apache уже настроен один виртуальный хост. Его настройки лежат в файле 000-default.conf. Вы можете использовать этот виртуальный хост в качестве примера.
Пример настройки виртуального хоста:
<VirtualHost *:80> #Имя хоста ServerName host1.server1 #Корневая папка хоста DocumentRoot /var/www/host1.server1 <Directory /var/www/host1.server1> #Разрешение на перезапись всех директив при помощи .htaccess AllowOverride All </Directory> </VirtualHost>
Назовите файл настройки именем вашего хоста host1.server1.conf и сохраните.
После создания файла настроек допишите в /etc/hosts имя вашего хоста:
127.0.0.1 host1.server1
Для включения созданного виртуального хоста используется утилита :
sudo a2ensite host1.server1
Отключается хост аналогично утилитой :
sudo a2dissite host1.server1
mod_userdir
Модуль позволяет использовать директории, находящиеся в домашних директориях пользователей для хранения веб страниц. По умолчанию Apache ищет запрашиваемые страницы в директории ~/public_html
mkdir ~public_html
Чтобы включить , выполните:
sudo a2enmod userdir
и добавьте необходимого пользователя в группу www-data:
sudo adduser $USER www-data
после чего перезагрузите Apache:
sudo service apache2 restart
Страницы будут доступны по адресу http://localhost/~username, где username — имя пользователя.
CGI
Если Вы хотите запускать на сервере cgi-скрипты, подключите модуль командой
sudo a2enmod cgi
По умолчанию cgi-скрипты размещаются в директории /usr/lib/cgi-bin, но вы можете разместить их где угодно,
указав это в настройках своего виртуального хоста, либо глобально для всех хостов в файле
/etc/apache2/conf-enabled/serve-cgi-bin.conf.
Eсли ваш сервер работает во внешней сети, то в целях безопасности настоятельно рекомендуется размещать cgi-скрипты вне корневой директории виртуального хоста
Hostnames and DNS
In order to connect to a server, the client will first have to resolve
the servername to an IP address — the location on the Internet where the
server resides. Thus, in order for your web server to be reachable, it
is necessary that the servername be in DNS.
If you don’t know how to do this, you’ll need to contact your network
administrator, or Internet service provider, to perform this step for
you.
More than one hostname may point to the same IP address, and more
than one IP address can be attached to the same physical server. Thus, you
can run more than one web site on the same physical server, using a
feature called virtual hosts.
If you are testing a server that is not Internet-accessible, you
can put host names in your hosts file in order to do local resolution.
For example, you might want to put a record in your hosts file to map a
request for to your local system, for
testing purposes. This entry would look like:
A hosts file will probably be located at or
.