Поблагодари автора прямо сейчас на странице Спасибо!

Apache2

Материал из Пингвиньи радостей

Перейти к: навигация, поиск

Содержание

Статья о пакете создающим веб сервер Apache2

Apache2 пакет создающий веб-сервер.
Сайт проекта: http://httpd.apache.org

Установка

Пакет присутствует в хранилище пакетов debian.
Для установки пакета

После установки пакет готов к использованию.
Чтобы убедиться в этом в браузере вводим 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
   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-сервере несколько сайтов.
Для создания виртуального хоста

<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 будет осуществлён переход на сайт.

Ссылки:

Автоматическое обнаружение прокси

Автоматическое обнаружение прокси позволяет прекратить ручную настройку 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 веб сервером.

Ссылки:

Повышение безопасности

(незавершенный раздел)
Повышение безопасности веб сервера может быть осуществлено за счёт "допуска" до сервера через обратный прокси или за счет установки дополнительных модулей 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: добавлено описание форматов лог-файлов
Личные инструменты