Поблагодари автора прямо сейчас на странице Спасибо!
Apache2
Материал из Пингвиньи радостей
Статья о пакете создающим веб сервер Apache2
Apache2 пакет создающий веб-сервер.
Сайт проекта: http://httpd.apache.org
Установка
Пакет присутствует в хранилище пакетов debian.
Для установки пакета
- в командной строке: следует выполнить команду # apt-get install apache2
- в графическом режиме: воспользоваться специализированной программой управления пакетами
После установки пакет готов к использованию.
Чтобы убедиться в этом в браузере вводим http://localhost.
В случае успеха будет показано сообщение It works!
Часто используемые команды
# /etc/init.d/apache2 restart - перезапуск www-сервера # apache2ctl restart - перезапуск www-сервера # tailf /var/log/apache2/access.log - мониторинг лог-файла
Ссылки:
Форматы лог-файлов
В некоторых случаях, например при обработке лог-файл собственным скриптом, может быть полезно осуществить изменение формата нужного лог-файла.
Для изменения формата лог-файла
- создаем нужный формат в файле конфигурации /etc/apache2/apache2.conf добавляя строку
LogFormat формат|псевдоним [псевдоним] - общий вид LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined - пример
- используем созданный формат, добавляя строку
CustomLog logs/access.log common
Ссылки:
Установка mod_perl
(незаконченный раздел)
Библиотека mod_perl позволяет "встроить" в Apache Perl и многократно (от 4 до 20 раз) ускорить работу CGI-скриптов www-сервера за счёт кеширования скомпилированных сценариев.
Для добавления mod_perl
- установлением mod_perl
# apt-get install libapache2-mod-perl2
- добавляем в файл конфигурации /etc/apache2/sites-available/default (?) в секцию /cgi-bin строки
SetHandler perl-script PerlHandler Apache::Registry PerlSendHeader On
- перезапускаем www-сервера
Ссылки:
Создание псевдонимов
Пакет поддерживает создание псевдонимов - слов добавляемых к "/" - корневому каталогу Apache2.
В каталоге связанном с псевдонимом может быть размещён сайт.
Это похоже на создание виртуального хоста (см. ниже).
Для создания псевдонима
- создаём в каталоге /etc/apache2/conf.d файл конфигурации (либо ссылку на него) вида
Alias /nikolsblog /www/nikolsblog/ <Directory /www/nikolsblog/myfiles/> Options +FollowSymLinks AllowOverride All order allow,deny allow from all </Directory>
- размещаем в каталоге указанном в созданном файле сайт
- осуществляем перезапуск www-сервера
Теперь при адресации в браузере интернет по адресу http://localhost/nikolsblog будет доступен размещённый там сайт.
Другой пример использования псевдонимов для создания виртуального сервера "ХРАНИЛИЩЕ ПАКЕТОВ DEBIAN" в локальной сети приведён в статье.
Ссылки:
Создание виртуальных хостов
Пакет поддерживает создание виртуальных хостов. Виртуальный хост позволяет создать на одном www-сервере несколько сайтов.
Для создания виртуального хоста
- создаём файл /etc/apache2/virtualhost.conf вида
<VirtualHost *:80> DocumentRoot /www/sysadmin/ ServerName it.tdkare.ru # ErrorLog /www/sysadmin/apache_error.log # CustomLog /www/sysadmin/apache_access.log combined </VirtualHost> </Directory>
- размещаем в каталоге указанном в созданном файле сайт
- добавляем в файл конфигурации /etc/apache2/apache2.conf строку
Include virtualhost.conf
- осуществляем перезапуск www-сервера
- осуществляем регистрацию имени созданного хоста (it.tdkare.ru) в dns-сервере с присвоением ему ip-адреса такого же что и адрес сервера Apache2.
Теперь при адресации в браузере интернет по адресу http://it.tdkare.ru будет осуществлён переход на сайт.
Ссылки:
- Многоликий Apache
- Добавление виртуальных хостов в Apache
- Виртуальные хосты Apache
- Apache2 настройка virtualhost
- Контейнеры виртуальных хостов Apache в отдельных файлах
- Примеры настроек сервера Apache
Автоматическое обнаружение прокси
Автоматическое обнаружение прокси позволяет прекратить ручную настройку www-клиентов в локальной сети.
Для включения поддержки автоматического обнаружения прокси
- в файл /etc/apache2/httpd.conf добавляем строку "AddType application/x-ns-proxy-autoconfig .dat"
- создаём в доступном для пользователей месте (например в корневой папке Apache2 /var/www/ файл wpad.dat) со следующим содержанием
function FindProxyForURL(url, host) { if (isInNet(host, "127.0.0.0", "255.255.255.0")) return "DIRECT"; else return "PROXY 192.168.0.3:3128"; }
- указываем на этот файл настройки в своём www-клиенте
- перезапускаем www-сервер
Ссылки:
Подключение к apache через SSL
Предположим что установлен пакет openssl.
Для предоставления доступа к apache2 через SSL
- получаем права root
- создаем закрытый ключ и SSL-сертификат
# openssl req -new -x509 -days 30 -keyout server.key -out server.pem на вопрос "Enter PEM pass phrase:" отвечаем паролем, подтверждаем и запоминаем. на все последующие вопросы отвечаем произвольно, на вопрос "Common Name (eg, YOUR name) []:" отвечаем именем сайта, для которого создаем сертификат, например www.example.com.
- снимаем пароль с ключа
# cp server.key server.key.orig # openssl rsa -in server.key.orig -out server.key # rm server.key.orig
- размещаем ключи
- server.pem: перемещаем ключ в каталог /etc/ssl/; создаём ссылку на этот файл в каталоге /etc/ssl/certs/; назначаем права доступа "только root" (chmod 0600)
- server.key: перемещаем ключ в каталог /etc/ssl/; создаём ссылку на этот файл в каталоге /etc/ssl/private/; назначаем права доступа "только root" (chmod 0600)
- включаем поддержку ssl в apache2
- включаем поддержку mod_ssl
# a2enmod ssl после этого в директории /etc/apache2/mods-enabled/ появляются два файла (ссылки) ssl.conf и ssl.load
- выполняем команду
# a2ensite default-ssl
- в файле конфигурации /etc/apache2/sites-available/default-ssl
заменяем строки SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key на: SSLCertificateFile /etc/ssl/certs/server.pem SSLCertificateKeyFile /etc/ssl/private/server.key
- добавляем ссылку в каталоге /etc/apache2/sites-enabled на файл /etc/apache2/sites-available/default-ssl
- перезапускаем www-сервер
Проверяем доступ на сайт через SSL: https://localhost/.
Ссылки:
Управление сайтом через htaccess
Файл .htaccess позволяет управлять поведением сервера Apache2 в отношении каталогов и файлов сайта. Apache2 каждый раз при запросе документов с сайта через браузер пользователя проверяет директорию на наличие файла .htaccess. Если он найден, то обрабатывается. Этот файл не виден из сети по протоколу http. Действие .htaccess распространяется на все вложенные файлы и папки включая ту, в которой он расположен. Параметры .htaccess во вложенном каталоге отменяют предыдущие (вышестоящие). При наличии ошибок в .htaccess сервер его не обрабатывает. Указание путей должно быть полным (/var/www/.htpassword) При указании переадресаций протокол должен быть указан: http или ftp (Redirect / http://www.mysites.ru/) Подробное описание ключевых слов приведено в статье .htaccess.
Пример блокирования сайтов
Вариант 1. Добавляем в файл .htaccess строки order allow deny deny from all deny from блокируемый_ип Вариант 2. Добавляем строки переадресации как в примере
Ссылки:
HTTP redirect
(незавершенный раздел)
HTTP redirect позволяет осуществлять перенаправления и подмену URL веб сервером.
Ссылки:
- HTTP redirect (apache redirect mod_rewrite)
- Редирект на URL и примеры использования mod_rewrite (web apache redirect mod_rewrite)
- Apache: устанавливаем редирект с www.domain.com на domain.com и наоборот
- Редирект на URL и примеры использования mod_rewrite (web apache redirect mod_rewrite)
Повышение безопасности
(незавершенный раздел)
Повышение безопасности веб сервера может быть осуществлено за счёт "допуска" до сервера через обратный прокси или за счет установки дополнительных модулей Apache2.
Ссылки:
Устранение ошибок
"Could not reliably determine the server's fully qualified domain name"
Для устранение ошибки "apache2: Could not reliably determine the server's fully qualified domain name..."
- в /etc/apache2/httpd.conf добавляем строку "ServerName mysite" где mysite - имя сайта на локальном компьютере.
- перезапускаем www-сервер
Ссылки:
"NameVirtualHost *:80 has no VirtualHosts"
Для устранение ошибки "apache2: [warn] NameVirtualHost *:80 has no VirtualHosts"
- в файл /etc/apache2/httpd.conf добавляем строку "ServerName localhost"
- в файл /etc/apache2/ports.conf добавляем строку "NameVirtualHost localhost:80"
- в папке /etc/apache2/sites-available создаем файл с описанием виртуального хоста localhost (например скопировав и отредактировав default)
- в папке /etc/apache2/sites-enabled размещаем ссылку на созданный файл конфигурации виртуального хоста localhost
- перезапускаем www-сервер
Литература
Справочная информация
- 04.09.2009: Apache2: создание статьи на примере для debian lenny 5.0 amd64; описание установки и устранения ошибки "not reliably determine the server's"
- 03.10.2010: Apache2: добавлено описание автоматического определения прокси на примере для debian lenny i386
- 19.12.2010: Apache2: правка внешнего вида статьи, добавлено описание создания виртуального сервера "ХРАНИЛИЩЕ ПАКЕТОВ DEBIAN"
- 12.01.2011: Apache2: добавлено описание подключение к apache через SSL
- 21.07.2011: Apache2: добавлено описание создания виртуальных хостов
- 10.06.2012: Apache2: добавлено описание форматов лог-файлов