Руководство по Ubuntu Server



Pdf просмотр
страница7/16
Дата17.11.2016
Размер1.78 Mb.
Просмотров3728
Скачиваний3
ТипРуководство
1   2   3   4   5   6   7   8   9   10   ...   16
Глава 10. Мониторинг

Мониторинг
204
1. Обзор
Мониторинг основных серверов и служб является важной составляющей системы администрирования. Большинство сетевых служб контролируются для наблюдения за их производительностью, доступностью или и тем и другим. В этом разделе описаны установка и настройка систем Nagios для мониторинга и Munin для слежения за производительностью.
Для примера, в этом разделе использованы два сервера с именами
server01 и server02. Server01 настроен на работу с системой Nagios для мониторинга сервисов и служб самого себя и server02. На server01 также будет установлен пакет munin для сбора информации по сети. Используя пакет munin-node, server02 будет отправлять информацию на server01.
Надеемся, что эти простые примеры позволят вам контролировать дополнительные сервера и службы в вашей сети.

Мониторинг
205
2. Nagios
2.1. Установка
Для начала на server01 необходимо установить пакет nagios. Для этого введите в терминале:
sudo apt-get install nagios3 nagios-nrpe-plugin
Вам будет предложено ввести пароль для пользователя nagiosadmin.
Учётные записи пользователя находятся в
/etc/nagios3/htpasswd.users
Для смены пароля пользователя nagiosadmin или добавления других пользователей для выполнения CGI скриптов Nagios используйте утилиту htpasswd, которая является частью пакета apache2-utils. apache2-utils.
Например, для смены пароля пользователя nagiosadmin введите в терминале:
sudo htpasswd /etc/nagios3/htpasswd.users nagiosadmin
Для добавления пользователя:
sudo htpasswd /etc/nagios3/htpasswd.users steve
Далее, на server02 установите пакет nagios-nrpe-server. В терминале на server02 введите:
sudo apt-get install nagios-nrpe-server
NRPE позволяет выполнять локальные проверки на удалённом компьютере. Но существуют и другие способы достижения этой цели, используя другие плагины Nagios, также как и другие способы проверок.
2.2. Обзор конфигурации
Существует несколько каталогов, содержащих конфигурационные файлы
Nagios а также файлы проверок.

/etc/nagios3
: содержит конфигурационные файлы для работы демона nagios, CGI-файлов, хостов и др.

/etc/nagios-plugins
: файлы конфигурации для служебных проверок.

/etc/nagios
: содержит конфигурационные файлы на удаленном компьютере nagios-nrpe-server.

Мониторинг
206

/usr/lib/nagios/plugins/
: тут находятся бинарные проверки. Для просмотра опций проверки используйте ключ-h.
Например: /usr/lib/nagios/plugins/check_dhcp -h
Существует множество проверок Nagios, которые могут быть настроены для выполнения на любом компьютере. В этом примере NagiosNagios будет настроен на проверку дискового пространства, службы DNS, а также группы пользователей MySQL. Проверка DNS будет осуществятся на
server02, а группа компьютеров MySQL будет включать в себя как server01,
так и server02.
Смотрите раздел Раздел 1, «HTTPD - веб сервер Apache2» [213] для более детальных настроек Apache, Глава 8, Служба доменных имён
(DNS) [158] для настройки DNS, а также Раздел 1, «MySQL» [237]
для настройки MySQL.
В дополнение к этому будут приведены несколько терминов, которые помогут вам облегчить настройку Nagios:
Host: сервер, рабочая станция, сетевое устройство и т.д., которое отслеживается.
Host Group: группа подобных компьютеров. Например вы можете сгруппировать все веб-серверы, файловые серверы и т.д.
Service: служба, которая отслеживается на компьютере. Например HTTP,
DNS, NFS и т.д.
Группа служб: позволяет объединить несколько служб вместе. Например это будет полезным для объединения нескольких веб-серверов.
Контакт: человек, который будет уведомлён при каком-либо событии.
Nagios может быть настроен на отправку email, SMS-сообщений и т.д.
По умолчанию Nagios настроен на проверку HTTP, дискового пространства,
SSH, текущих пользователей, процессов и слежение за уровнем загрузки на локальном компьютере (localhost). Nagios также выполняет проверку шлюза посредством команды ping.
Настроить Nagios на множестве компьютеров может быть довольно сложно.
Начать лучше с нескольких компьютеров, одного или двух, настроить всё оптимальным образом, а затем расширить настройку для большего количества компьютеров.
2.3. Конфигурация
• 1. Для начала необходимо создать конфигурационный файл для
server02. Если не указанно иное, выполните все эти команды на
server01. Введите в терминале:

Мониторинг
207
sudo cp /etc/nagios3/conf.d/localhost_nagios2.cfg \ /etc/nagios3/conf.d/server02.cfg
В вышеуказанном, а также следующем примере замените
"server01", "server02", 172.18.100.100 и 172.18.100.101 на имя и
IP-адреса ваших серверов.
2. Далее отредактируйте файл
/etc/nagios3/conf.d/server02.cfg
:
define host{
use generic-host ; Name of host template to use host_name server02
alias Server 02
address 172.18.100.101
}
# check DNS service.
define service {
use generic-service host_name server02
service_description DNS
check_command check_dns!172.18.100.101
}
3. Перезагрузите демон nagios для активации новых настроек:
sudo /etc/init.d/nagios3 restart
• 1. Теперь добавим служебное описание для проверки MySQL путём добавления следующих строк в
/etc/nagios3/conf.d/services_nagios2.cfg
:
# check MySQL servers.
define service {
hostgroup_name mysql-servers service_description MySQL
check_command check_mysql_cmdlinecred!nagios!secret!$HOSTADDRESS
use generic-service notification_interval 0 ; set > 0 if you want to be renotified
}
2. Сейчас должны быть определена группа mysql-servers.
Отредактируйте
/etc/nagios3/conf.d/hostgroups_nagios2.cfg
, добавив следующее:
# MySQL hostgroup.
define hostgroup {
hostgroup_name mysql-servers alias MySQL servers members localhost, server02
}

Мониторинг
208 3. Проверка Nagios должна пройти аутентификацию в MySQL. Для добавления пользователя nagios в MySQL введите:
mysql -u root -p -e "create user nagios identified by 'secret';"
Пользователь nagios должен присутствовать на всех компьютерах рабочей группы серверов mysql-servers.
4. Перезагрузите nagios для проверки сервера MySQL.
sudo /etc/init.d/nagios3 restart
• 1. Наконец, необходимо настроить NRPE для проверки дискового пространства на server02.
На server01 добавим служебную проверку в
/etc/nagios3/conf.d/
server02.cfg
:
# NRPE disk check.
define service {
use generic-service host_name server02
service_description nrpe-disk check_command check_nrpe_1arg!check_all_disks!172.18.100.101
}
2. Теперь на server02 отредактируем
/etc/nagios/nrpe.cfg
:
allowed_hosts=172.18.100.100
А в строку объявления команды добавим:
command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -e
3. В конце перезагрузим nagios-nrpe-server:
sudo /etc/init.d/nagios-nrpe-server restart
4. На server01 также необходимо перезагрузить nagios:
sudo /etc/init.d/nagios3 restart
Теперь вы должны видеть ваши серверы и служебные проверки в файлах
Nagios CGI. Для доступа к ним наберите в строке браузера http://server01/
nagios3. Вам будет предложено ввести имя пользователя и пароль для
nagiosadmin.

Мониторинг
209 2.4. Ссылки
В этом разделе были описаны лишь незначительные возможности Nagios.
nagios-plugins-extra и nagios-snmp-plugins содержат намного больше файлов проверки служб.
• Для более детальной информации обратитесь к документации на официальном сайте Nagios
1
• А особенно на сайте онлайн-документации
2
• Существует несколько книг
3
посвященных Nagios и мониторингу сети.
• Страница Nagios Ubuntu Wiki
4
также содержит достаточно документации.
1
http://www.nagios.org/
2
http://nagios.sourceforge.net/docs/3_0/
3
http://www.nagios.org/propaganda/books/
4
https://help.ubuntu.com/community/Nagios

Мониторинг
210
3. Munin
3.1. Установка
Перед установкой Munin на server01 необходимо установить веб-сервер apache2. Стандартной конфигурации будет достаточно для запуска сервера munin. Для более детальной информации по настройке apache2,
обратитесь к разделу Раздел 1, «HTTPD - веб сервер Apache2» [213].
Для начала на server01 установим munin. Введите в терминале:
sudo apt-get install munin
Теперь на server02 установим пакет munin-node:
sudo apt-get install munin-node
3.2. Конфигурация
На server01 отредактируйте файл
/etc/munin/munin.conf добавив IP-адрес
server02:
## First our "normal" host.
[server02]
address 172.18.100.101
Замените server02 и 172.18.100.101 на имя компьютера и IP-адрес вашего сервера.
Далее настроим пакет munin-node на server02. Отредактируйте файл
/etc/
munin/munin-node.conf для доступа server01:
allow ^172\.18\.100\.100$
Замените ^172\.18\.100\.100$ на IP-адрес вашего сервера munin.
Теперь перезагрузите munin-node на server02 для принятия изменений:
sudo /etc/init.d/munin-node restart
Наконец, в строке браузера введите http://server01/munin, и вы увидите ссылки, которые отображают информацию из стандартных плагинов munin-
plugins для дисков, сети, процессов и системы.

Мониторинг
211
Поскольку это новая установка, может пройти некоторое время перед отображением какой-либо полезной информации.
3.3. Дополнительные плагины
Пакет munin-plugins-extra содержит дополнительные проверки производительности служб, таких как DNS, DHCP, Samba и т.д. Для установки пакета введите в терминале:
sudo apt-get install munin-plugins-extra
Убедитесь в том, что вы установили пакет как на сервер, так и на связывающие компьютеры.
3.4. Ссылки
• Посетите официальный сайт Munin
5
для более детальной информации.
• Узконаправленная документация Munin
6
содержит информацию о дополнительных плагинах, написании плагинов и т.д.
• Также можно прочесть книгу на немецком языке издательства «Open
Source Press»: Munin Graphisches Netzwerk- und System-Monitoring
7
• Другой ресурс Munin Ubuntu Wiki
8 5
http://munin.projects.linpro.no/
6
http://munin.projects.linpro.no/wiki/Documentation
7
https://www.opensourcepress.de/index.php?26&backPID=178&tt_products=152 8
https://help.ubuntu.com/community/Munin

212
Глава 11. Веб-серверы
Веб-сервер — это программное обеспечение, ответственное за приём HTTP- запросов от клиентов, известных как веб-браузеры, и отправки им HTTP- ответов вместе с опциональными данными, которые обычно являются веб-страницами, такими как документы HTML и присоединённые объекты
(изображения и т.д.).

Веб-серверы
213
1. HTTPD - веб сервер Apache2
Apache является наиболее часто используемым веб-сервером на системах Linux. Веб-серверы используются для обслуживания веб- страниц, запрашиваемых клиентскими компьютерами. Клиенты обычно запрашивают веб-страницы с помощью приложений для просмотра
Интернета, таких как Firefox, Opera, Chromium или Mozilla.
Пользователи вводят Uniform Resource Locator (URL), чтобы указать на веб-сервер посредством Fully Qualified Domain Name (FQDN) и пути к необходимому ресурсу. Например, чтобы просмотреть домашнюю страницу
веб-сайта Ubuntu
1
, пользователь будет вводить только FQDN:
www.ubuntu.com
Чтобы посмотреть подстраницу community
2
, пользователь вводит FQDN,
сопровождаемый путём:
www.ubuntu.com/community
Самый часто используемый протокол для передачи веб-страниц — это HTTP
(Hyper Text Transfer Protocol). Также поддерживаются такие протоколы, как
HTTP over Secure Sockets Layer (HTTPS) и Transfer Protocol (FTP), протокол для передачи файлов.
Веб-сервер Apache часто используется в связке с движком баз данных
MySQL, скриптовым языком PHP и другими популярными скриптовыми языками — Python и Perl. Данная конфигурация обозначена аббревиатурой
LAMP (Linux, Apache, MySQL, Perl/Python/PHP) и формирует собой мощный набор инструментов для разработки и использования веб-приложений.
1.1. Установка
Веб-сервер Apache2 доступен в Ubuntu Linux. Чтобы установить Apache2:
• В терминале введите следующую команду:
sudo apt-get install apache2
1
http://www.ubuntu.com
2
http://www.ubuntu.com/community

Веб-серверы
214 1.2. Конфигурация
Apache2 настраивается путём редактирования или добавления директив
в обычных текстовых конфигурационных файлах. Эти директивы
размещаются в следующих файлах и каталогах:
apache2.conf: главный конфигурационный файл Apache2. Содержит параметры, которые являются глобальными для Apache2.
conf.d: содержит конфигурационные файлы, которые применяются к
Apache2 глобально. Другие пакеты, использующие Apache2 для хранения содержимого, могут добавлять файлы или символические ссылки на этот каталог.
envvars: файл, где устанавливается переменные окружения Apache2.
httpd.conf: исторически главный конфигурационный файл Apache2,
названный в честь службы httpd. Теперь файл, как правило, пуст,
так как большинство параметров конфигурации было перемещено в перечисленные ниже каталоги. Этот файл может быть использован для
пользовательских глобальных параметров конфигурации Apache2.
mods-available: этот каталог содержит файлы конфигурации для загрузки
модулей и их настройки. Однако, не все модули будут иметь конкретные конфигурационные файлы.
mods-enabled: содержит символические ссылки на файлы в
/etc/apache2/
mods-available
. Если на конфигурационный файл модуля поставить символическую ссылку, модуль будет загружен при следующем перезапуске apache2.
ports.conf: содержит директивы, определяющие, на каких TCP портах
Apache2 принимает соединения.
sites-available: эта папка содержит конфигурационные файлы виртуальных хостов (Virtual Hosts) Apache2. Виртуальные хосты позволяют сконфигурировать Apache2 так, чтобы каждый сайт имел отдельную конфигурацию.
sites-enabled: подобна mods-enabled, sites-enabled содержит символьные ссылки на каталог
/etc/apache2/sites-available
. Соответственно, когда на конфигурационный файл в sites-available будет сделана ссылка, то она вступит в действие, как только Apache2 будет перезапущен.
В дополнение, другие конфигурационные файлы могут быть добавлены, используя директиву Include. Для включения нескольких конфигурационных файлов могут использоваться метасимволы. Любая директива может быть помещена в любой из этих конфигурационных файлов. Изменения в основных конфигурационных файлах распознаются
Apache2 в процессе запуска или перезапуска.

Веб-серверы
215
Сервер также читает файл, содержащий mime-типы документов; имя файла задается директивой TypesConfig, как правило, через
/etc/apache2/
mods-available/mime.conf
, которая может также включать дополнения и коррекции, и
/etc/mime.types по умолчанию.
1.2.1. Основные настройки
В этом разделе описаны основные параметры конфигурации сервера
Apache2. Обратитесь к Документации Apache2
3
для более подробной информации.
• По умолчанию Apache 2 имеет конфигурацию, совместимую с виртуальными хостами. В его настройках указан единственный виртуальный хост (через директиву VirtualHost), который может быть оставлен как есть, если у вас всего один сайт, либо использован как шаблон для других виртуальных хостов, если сайтов у вас несколько.
Если оставить его настройку, как есть, виртуальный хост по умолчанию будет обслуживать ваш основной сайт, или сайт, который увидят пользователи, если URL, по которому они попали на ваш сервер, не обрабатывается ни одним из остальных виртуальных хостов (т.е. если имя хоста не найдено ни в одной директиве ServerName). Чтобы изменить виртуальный хост по умолчанию, отредактируйте файл
/etc/apache2/sites- available/default
Директивы, установленные для виртуального хоста, применяются только для того виртуального хоста, для которого они установлены. Если директива установлена в основной конфигурации сервера и не установлена для конкретного виртуального хоста, то будет использовано значение по умолчанию. Например, вы можете указать адрес электронной почты вебмастера в основном конфигурационном файле сервера и не указывать его для каждого виртуального хоста.
Если вы хотите настроить новый виртуальный хост или сайт, скопируйте этот файл в ту же папку, дав ему выбранное вами имя. Например:
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mynewsite
Отредактируйте новый файл, чтобы настроить новый сайт, используя некоторые директивы, описанные ниже.
• Директива ServerAdmin определяет почтовый адрес администратора сервера, который будет отображаться пользователям. Значение по умолчанию — webmaster@localhost. Данная переменная должна быть
3
http://httpd.apache.org/docs/2.2/

Веб-серверы
216
изменена на доступный для вас почтовый адрес (если вы являетесь администратором сервера). Если на вашем сайте возникнут проблемы,
Apache2 отобразит ошибку, в которой также будет отображен указанный почтовый адрес с целью сообщения проблемы. Вы можете найти эту директиву в вашем файле конфигурации сайтов, в каталоге /etc/apache2/
sites-available.
• Директива Listen определяет порт и, при указании, IP-адрес, на котором должен работать Apache2. Если IP-адрес не указан, Apache2 работает на всех IP-адресах, которые доступны компьютеру, на котором он запущен.
Значение директивы по умолчанию — порт 80. Вы можете изменить значение на 127.0.0.1:80, чтобы Apache2 работал только на локальном интерфейсе и не был доступен извне. Также можно указать, например,
значение 81 для изменения порта сервера или оставить всё как есть для работы по умолчанию. Данная директива может быть найдена и изменена в её собственном файле
/etc/apache2/ports.conf
• Директива ServerName является необязательной и определяет, на какие FQDN должен отвечать ваш сайт. По умолчанию виртуальный хост не имеет установленной директивы ServerName, поэтому он будет отвечать на все запросы, которые не совпадают с директивой
ServerName на другом виртуальном хосте. Если вы только что приобрели доменное имя ubunturocks.com и хотите разместить его на своём Ubuntu- сервере, то значение директивы ServerName в конфигурационном файле вашего виртуального хоста должно быть ubunturocks.com. Добавьте эту директиву к новому файлу виртуального хоста, который вы создали ранее (
/etc/apache2/sites-available/mynewsite
).
Возможно вы захотите, чтобы ваш сайт отвечал на www.ubunturocks.com,
поскольку многие пользователи сочтут подходящим использовать префикс www. Для этого используйте директиву ServerAlias. В директиве
ServerAlias вы также можете использовать метасимволы.
Например, следующая конфигурация заставит ваш сайт отвечать на любой запрос домена, оканчивающийся на .ubunturocks.com.
ServerAlias *.ubunturocks.com
• Директива DocumentRoot указывает, где Apache2 должен искать файлы,
составляющие сайт. Значением по умолчанию является /var/www, как указано в
/etc/apache2/sites-available/default
. Если необходимо, измените это значение в файле виртуального хоста вашего сайта, и не забудьте при необходимости создать соответствующий каталог!

Веб-серверы
217
Активируйте новый VirtualHost, используя утилиту a2ensite, и перезапустите Apache2:
sudo a2ensite mynewsite
sudo service apache2 restart
Не забудьте заменить mynewsite более подходящим именем для
VirtualHost. Один из способов — это назвать файл так же, как в директиве ServerName для VirtualHost.
Аналогично, используйте утилиту a2dissite для выключения сайтов. Это может быть полезным для устранения неполадок в конфигурации для нескольких виртуальных хостов.
sudo a2dissite mynewsite
sudo service apache2 restart
1.2.2. Настройки по умолчанию
Данный раздел описывает настройку параметров Apache2 по умолчанию.
Они необходимы, например, если вы добавляете виртуальный хост,
настраиваете нужные директивы, а некоторые не указываете. В этом случае используются значения по умолчанию.
DirectoryIndex указывает на страницу (файл) по умолчанию, которую выдаёт пользователю сервер при запросе индекса каталога, указывая слеш (/) в конце имени каталога.
Например, когда пользователь запрашивает страницу http://
www.example.com/this_directory/, он получит либо страницу DirectoryIndex,
если она существует, либо сгенерированный сервером список каталогов,
если она не существует и задана опция indexes, либо страницу отказа в доступе (Permission Denied). Сервер попытается найти один из файлов,
перечисленных в директиве DirectoryIndex и вернёт первый найденный.
Если он не найдёт ни один из этих файлов и, если задана опция Options
Indexes для этого каталога, сервер сгенерирует и вернёт в формате
HTML список подкаталогов и файлов в каталоге. Значения по умолчанию из
/etc/apache2/mods-available/dir.conf
— это "index.html index.cgi index.pl index.php index.xhtml index.htm". Таким образом, если Apache2 находит в запрашиваемом каталоге файл, соответствующий любому из этих имён,
он возвращает первый найденный файл.
• Директива ErrorDocument позволяет указать Apache2 файл для вывода определённых ошибок. Например, если пользователь запрашивает несуществующий ресурс, возникнет ошибка 404. По умолчанию Apache2

Веб-серверы
218
просто вернёт код HTTP 404. Обратитесь к
/etc/apache2/conf.d/localized- error-pages за подробными инструкциями по использованию ErrorDocument,
включая файлы примеров.
• По умолчанию сервер записывает журнал передачи данных в файл
/var/log/apache2/access.log
. Вы можете изменить это в вашем файле конфигурации виртуальных хостов с помощью директивы CustomLog
для каждого хоста, или пропустить его, чтобы принять значение по умолчанию, указанное в
/etc/apache2/conf.d/other-vhosts-access-log
. Вы также можете указать файл, в котором регистрируются ошибки, через директиву ErrorLog, которая по умолчанию указывает на
/var/log/apache2/
error.log
. Они хранятся отдельно от журналов передачи данных, чтобы помочь в решении проблем с вашим сервером Apache2. Вы также можете задать уровень журналирования в LogLevel (по умолчанию "warn") и формат журнала в LogFormat (Смотрите
/etc/apache2/apache2.conf для значений по умолчанию).
• Некоторые опции указываются для каталога, а не для сервера. Одна из таких директивOptions. Группа строк Directory заключена в теги XML
следующим образом:


Директива Options внутри группы строк Directory может принимать одно или несколько из следующих значений (помимо прочих), разделяемых пробелом:
ExecCGI — разрешает запуск CGI-скриптов. CGI-скрипты не будут запускаться, если эта опция не установлена.
Includes — разрешает расширения на стороне сервера. Расширения на стороне сервера позволяют HTML-файлу включать в себя другие файлы. Смотрите документацию Apache SSI (сообщества Ubuntu)
4
для получения дополнительной информации.
IncludesNOEXEC — разрешает использовать расширения на стороне сервера, но отключает команды #exec и #include в CGI скриптах.
Indexes — отображать форматированный список содержимого каталога, если в опрашиваемом каталоге нет файла из Индекса
каталога (такого как index.html).
Из соображений безопасности обычно эта опция не устанавливается и, естественно, не должна устанавливаться для каталога DocumentRoot. Включайте эту опцию только для
4
https://help.ubuntu.com/community/ServerSideIncludes

Веб-серверы
219
отдельных каталогов и только в том случае, если уверены,
что хотите, чтобы пользователи могли просматривать всё
содержимое каталога.
Multiview — поддержка множества видов страницы в зависимости от содержимого; по соображениям безопасности этот параметр по умолчанию выключен. Смотрите Документацию Apache2 по этому
параметру
5
SymLinksIfOwnerMatch — переходить по символическим ссылкам только в случае, если у файла/каталога и ссылки один и тот же владелец.
1.2.3. Настройки httpd
Этот раздел объясняет некоторые основные настройки демона httpd
LockFile — директива LockFile устанавливает путь к lock-файлу сервера, который используется, если сервер собран с параметрами
USE_FCNTL_SERIALIZED_ACCEPT или USE_FLOCK_SERIALIZED_ACCEPT. Он должен располагаться на локальном диске. Значение директивы должно быть оставлено по умолчанию за исключением случая, когда каталог журналов находится в разделе NFS. Доступ к файлу должен быть только у суперпользователя (root).
PidFile — директива PidFile устанавливает имя файла, в который сервер записывает свой номер поцесса (process ID — pid). Файл должен читаться только суперпользователем (root). В большинстве случаев следует оставить значение по умолчанию.
User — директива User устанавливает идентификатор пользователя
(userid), используемый сервером для ответа на запросы. Эта настройка определяет доступ к серверу. Любые файлы, недоступные для этого пользователя, будут также недоступны посетителям вашего сайта.
Значение по умолчанию для User: "www-data".
Без полного понимания того, что вы делаете, не устанавливайте директиву User в значение root. Использование суперпользователя
(root) как пользователя веб-сервера создаст очень серьёзные дыры в безопасности вашего сервера.
Group — директива Group подобна директиве User. Group устанавливает группу, под которой сервер будет отвечать на запросы. По умолчанию
Group: "www-data".
5
http://httpd.apache.org/docs/2.2/mod/mod_negotiation.html#multiviews

Веб-серверы
220 1.2.4. Модули Apache2
Apache2 — модульный сервер. Это значит, что в ядро сервера включены только базовые функции. Расширенные возможности доступны в виде модулей, которые могут быть загружены в Apache2. По умолчанию, базовый набор модулей включается в сервер во время компиляции. Если сервер скомпилирован с возможностью использования динамически загруженных модулей, модули могут быть скомпилированы отдельно и добавлены в любое время с помощью директивы LoadModule. Иначе, Apache2 должен быть перекомпилирован для добавления и/или удаления модулей.
Ubuntu компилирует Apache2 с возможностью динамической загрузки модулей. Конфигурационные директивы могут быть включены для присутствия конкретного модуля при условии заключения их в блок
.
Вы можете установить дополнительные модули для Apache2 и использовать их на вашем веб-сервере. Например, запустите следующую команду из командной строки терминала, чтобы установить модуль MySQL
Authentication:
sudo apt-get install libapache2-mod-auth-mysql
Для дополнительных модулей смотрите каталог
/etc/apache2/mods-available
Чтобы включить модуль, используйте утилиту a2enmod:
sudo a2enmod auth_mysql
sudo service apache2 restart
Аналогично, a2dismod отключит модуль:
sudo a2dismod auth_mysql
sudo service apache2 restart
1.3. Настройка HTTPS
Модуль mod_ssl добавляет серверу Apache2 важную особенность —
возможность защищённых коммуникаций. Соответственно, когда ваш браузер соединяется с использованием SSL, в адресной строке браузера перед URL используется префикс https://.
Модуль mod_ssl доступен в составе пакета apache2-common. Выполните нижеследующую команду в терминале для включения модуля mod_ssl:

Веб-серверы
221
sudo a2enmod ssl
Пример настройки HTTPS содержится в файле
/etc/apache2/sites-available/
default-ssl
. Для работы Apache2 с HTTPS также необходимы файлы
сертификата и ключа. Базовая конфигурация HTTPS использует ключ и сертификат, генерируемые пакетом ssl-cert. Они подходят для тестирования, но позже должны быть заменены на уникальные для данного сайта или сервера. Прочесть о генерировании ключа и получении сертификата можно здесь Раздел 5, «Сертификаты» [194].
Чтобы настроить Apache2 для HTTPS, введите следующее:
sudo a2ensite default-ssl
Каталоги
/etc/ssl/certs и
/etc/ssl/private
— это места по умолчанию.
Если вы установили сертификат и ключ в другие каталоги,
убедитесь, что SSLCertificateFile и SSLCertificateKeyFile тоже изменены.
Теперь Apache2 сконфигурирован для HTTPS, перезапустите службу, чтобы активировать новые настройки:
sudo service apache2 restart
В зависимости от того, как вы получили сертификат, может потребоваться ввести пароль при запуске Apache2.
Вы можете получить доступ к страницам через безопасное соединение,
набрав в адресной строке браузера https://your_hostname/url/.
1.4. Права разделения записи
Чтобы несколько пользователей имели возможность выполнять запись в один и тот же каталог, необходимо предоставить права записи группе, к которой они оба относятся. В следующем примере предоставляются права записи в
/var/www группе "webmasters".
sudo chgrp -R webmasters /var/www
sudo find /var/www -type d -exec chmod g=rwxs "{}" \;
sudo find /var/www -type f -exec chmod g=rws "{}" \;
Если доступ к каталогу должен быть предоставлен более чем одной группе, необходимо включить списки контроля доступа (ACL).

Веб-серверы
222 1.5. Ссылки
Apache2 Documentation
6
содержит подробную информацию по конфигурационным директивам Apache2. Смотрите также пакет apache2- doc, содержащий официальную документацию Apache2.
• Смотрите сайт Mod SSL Documentation
7
для дополнительной информации по SSL.
• Книга Apache Cookbook
8
издательства O'Reilly — хороший источник для освоения специфических настроек Apache2.
• По поводу специфических для Ubuntu вопросов по Apache2 обращайтесь на IRC канал #ubuntu-server в сети freenode.net
9
• Хороший ресурс по интеграции PHP и MySQL Apache MySQL PHP Ubuntu
Wiki
10 6
http://httpd.apache.org/docs/2.2/
7
http://www.modssl.org/docs/
8
http://oreilly.com/catalog/9780596001919/
9
http://freenode.net/
10
https://help.ubuntu.com/community/ApacheMySQLPHP

Веб-серверы
223
2. PHP5 — язык сценариев
PHP — язык сценариев общего назначения, применяемый веб- программистами. Сценари PHP могут встраиваться в HTML. В этом разделе описывается, как установить и настроить PHP5 в системе Ubuntu с Apache2
и MySQL.
В этом разделе предполагается, что вы установили и настроили веб-сервер
Apache2 и сервер баз данных MySQL. Вы можете обратиться к разделам,
посвящённым Apache2 и MySQL в данном документе, чтобы установить и настроить Apache2 и MySQL, соответственно.
2.1. Установка
PHP5 доступен в Ubuntu Linux. В отличие от python и perl, которые уже установлены в системе, PHP должен быть добавлен.
• Чтобы установить PHP5, вам нужно ввести следущую команду в терминале:
sudo apt-get install php5 libapache2-mod-php5
Вы можете запускать сценарии PHP5 из командной строки. Чтобы сделать это, вам следует установить пакет php5-cli. Для установки этого пакета введите в терминале:
sudo apt-get install php5-cli
Вы также можете запускать сценарии PHP5 без установленного модуля
PHP5 Apache. Чтобы добиться этого, вам следует установить пакет php5-cgi. Для этого наберите в терминале:
sudo apt-get install php5-cgi
Для того, чтобы иметь возможность использовать MySQL с PHP5, вам необходимо установить пакет php5-mysql. Для установки php5-mysql вы можете воспользоваться следующей командой в окне терминала:
sudo apt-get install php5-mysql
Аналогично, для использования PostgerSQL с PHP5, вам понадобится установить пакет php5-pgsql. Для установки php5-pgsql введите в строке терминала:

Веб-серверы
224
sudo apt-get install php5-pgsql
2.2. Конфигурация
Установив PHP5, вы можете выполнять сценарии PHP5 на сервере по запросу вашего браузера. Если вы установили пакет php5-cli, то можете выполнять сценарии PHP5 из командной строки.
По умолчанию, веб-сервер Apache 2 сконфигурирован для выполнения сценариев PHP5. Другими словами, модуль PHP5 автоматически включается, когда вы устанавливаете модуль. Проверьте, существуют ли файлы
/etc/apache2/mods-enabled/php5.conf и
/etc/apache2/mods-enabled/php5.load
Если эти файлы отсутствуют, вы можете включить модуль с помощью команды a2ebmod.
После того, как вы установите соответствующие пакеты PHP5 и активируете модули PHP5 в Apache2, необходимо будет перезапустить Web- сервер Apache2, чтобы скрипты PHP5 исполнялись. Вы можете запустить следующую команду в терминале для перезапуска веб-сервера:
sudo service apache2 restart
2.3. Тестирование
Для проверки успешности установки, вы можете выполнить следующий
PHP5 phpinfo скрипт:
?>
Вы можете сохранить содержимое в файле phpinfo.php и поместить его в каталог DocumentRoot веб-сервера Apache2. Указав в браузере адрес http://hostname/phpinfo.php
, вы увидите значения различных конфигурационных параметров PHP5.
2.4. Ссылки
• Более полную информацию можно получить из документации на
php.net
11
• Существует множество книг по языку PHP. Можно порекомендовать две хорошие книги O'Reilly Learning PHP 5
12
and the PHP Cook Book
13 11
http://www.php.net/docs.php
12
http://oreilly.com/catalog/9780596005603/
13
http://oreilly.com/catalog/9781565926813/

Веб-серверы
225
• Кроме того, смотрите страницу Apache MySQL PHP Ubuntu Wiki
14
для дополнительной информации.
14
https://help.ubuntu.com/community/ApacheMySQLPHP

Веб-серверы
226
3. Прокси-сервер Squid
Squid — полноценный кэширующий прокси-сервер, предоставляющий услуги прокси и кэширования для HTTP, FTP и других популярных протоколов. Squid может обеспечить кэширование и посредничество SSL
запросов и кэширование DNS обзоров, а также выполнять прозрачное кэширование. Squid поддерживает широкий спектр кэширующих протоколов, такие как Internet Cache Protocol (ICP), Hyper Text Caching
Protocol (HTCP), Cache Array Routing Protocol (CARP) и Web Cache Coordination
Protocol (WCCP).
Прокси/кеш сервер Squid — великолепное решение для разных задач,
в которых требуется использование прокси или кэширования. Его применение варьируется от малых офисов до серьёзных многоуровневых сетей, которые предоставляют обширные системы управления доступом и наблюдение за критическими параметрами через Simple Network
Management Protocol (SNMP). При выборе компьютера для выделенного сервера под Squid убедитесь, что он оснащён большим количеством оперативной памяти, так как Squid кэширует данные в оперативную память для повышения производительности.
3.1. Установка
В строке терминала введите следующую команду для установки сервера
Squid:
sudo apt-get install squid
3.2. Конфигурация
Squid настраивается посредством редактирования значений директив в файле
/etc/squid/squid.conf
. Следующие примеры показывают несколько директив, которые могут быть изменены для влияния на поведение сервера Squid. Для более детальной настройки Squid смотрите источники в разделе Ссылки.
Перед редактированием конфигурационного файла сделайте копию оригинала с целью востановления каких-либо значений, если это потребуется или просто для справки.
Скопируйте файл
/etc/squid/squid.conf и защитите копию от записи следующей командой:

Веб-серверы
227
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.original
sudo chmod a-w /etc/squid/squid.conf.original
• Для того, чтобы настроить порт, на котором будет работать сервер Squid,
на 8888 (по умолчанию 3128), вам нужно изменить значение директивы http_port следующим образом:
http_port 8888
• Измените директиву visible_hostname для указания имени серверу
Squid. Не обязательно, чтобы имя сервера Squid совпадало с именем компьютера. В данном примере оно установлено как weezie
visible_hostname weezie
• Используя контроль доступа Squid, можно разрешить использовать интернет-сервисы через Squid только пользователям с определённых
IP-адресов. Для примера, мы покажем как предоставить доступ только пользователям из подсети 192.168.42.0/24:
Добавьте следующее в конец секции ACL в вашем файле
/etc/squid/
squid.conf
:
acl fortytwo_network src 192.168.42.0/24
Потом добавьте следующее в начало секции http_access в вашем файле
/
etc/squid/squid.conf
:
http_access allow fortytwo_network
• Используя отличные возможности разграничения доступа в Squid, вы можете разрешить доступ к ресурсам Интернет только в рабочие часы.
Напрмер, мы продемонстрируем доступ с 9:00 до 17:00, с понедельника по пятницу, для подсети 10.1.42.0/24:
Добавьте следующее в конец секции ACL в вашем файле
/etc/squid/
squid.conf
:
acl biz_network src 10.1.42.0/24
acl biz_hours time M T W T F 9:00-17:00
Потом добавьте следующее в начало секции http_access в вашем файле
/
etc/squid/squid.conf
:
http_access allow biz_network biz_hours

Веб-серверы
228
После внесения изменений в файл
/etc/squid/squid.conf
, сохраните его и, набрав в терминале следующую команду, перезапустите squid сервер, чтобы изменения вступили в силу.
sudo /etc/init.d/squid restart
3.3. Ссылки
Веб-сайт Squid
15
Страница Ubuntu Wiki Squid
16 15
http://www.squid-cache.org/
16
https://help.ubuntu.com/community/Squid

Веб-серверы
229
4. Ruby on Rails
Ruby on Rails — это веб-инфраструктура с открытым исходным кодом для разработки веб-приложений с базами данных. Она оптимизирована для обеспечения стабильной продуктивности работы программиста, поскольку она позволяет программисту писать код, предпочитая конвенцию конфигурации.
4.1. Установка
Перед установкой Rails необходимо установить Apache и MySQL. Для установки Apache, пожалуйста, обратитесь к Раздел 1, «HTTPD - веб
сервер Apache2» [213]. Для инструкций по установке MySQL, обратитесь к
Раздел 1, «MySQL» [237].
Установив Apache и MySQL, можно приступать к установке Ruby on Rails.
Для установки базовых пакетов Ruby и Ruby on Rails, вы можете выполнить следующие команды в терминале:
sudo apt-get install rails
4.2. Конфигурация
Измените конфигурационный файл
/etc/apache2/sites-available/default для настройки ваших доменов.
Первое, что подлежит изменению — это директива DocumentRoot:
DocumentRoot /path/to/rails/application/public
Далее, измените директиву :

Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order allow,deny allow from all
AddHandler cgi-script .cgi

Также следует разрешить Apache использовать модуль mod_rewrite. Для этого выполните следующее в строке терминала:
sudo a2enmod rewrite

Веб-серверы
230
Наконец, вам понадобится установить права владения каталогами
/path/
to/rails/application/public и
/path/to/rails/application/tmp пользователю,
используемому для запуска процесса Apache:
sudo chown -R www-data:www-data /path/to/rails/application/public
sudo chown -R www-data:www-data /path/to/rails/application/tmp
Вот и всё! Теперь ваш сервер может работать с приложениями Ruby on
Rails.
4.3. Ссылки
• Для более детальной информации смотрите веб-сайт Ruby on Rails
17
• Также существует великолепный сайт Agile Development with Rails
18
• Дополнительная информация на странице Ruby on Rails Ubuntu Wiki
19 17
http://rubyonrails.org/
18
http://pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition
19
https://help.ubuntu.com/community/RubyOnRails

Веб-серверы
231
5. Apache Tomcat
Apache Tomcat — это веб-контейнер, позволяющий вам обслуживать веб- приложения Java Servlets и JSP (Java Server Pages).
Пакеты Tomcat 6.0 в Ubuntu поддерживают два варианта запуска Tomcat.
Вы можете установить его как классический одиночный экземпляр на всю систему, который будет запускаться при загрузке системы от имени непривилегированного пользователя tomcat6. Но вы также можете развернуть частные экземпляры, которые будут запускаться с правами вашего собственного пользователя, и вам придется запускать и останавливать их самостоятельно. Второй вариант особенно полезен в контексте сервера разработки, где нескольким пользователям требуется тестировать их собственные частные экземпляры Tomcat.
5.1. Общесистемная установка
Для установки сервера Tomcat можно ввести следующую команду в приглашении терминала:
sudo apt-get install tomcat6
Это установит сервер Tomcat только со встроенным веб-приложением
ROOT, которое выводит простейшую страницу "It works".
5.2. Конфигурация
Конфигурационные файлы Tomcat находятся в
/etc/tomcat6
. Здесь будут описаны только несколько общих настроек, для большего смотрите
документацию Tomcat 6.0
20 5.2.1. Изменение портов по умолчанию
По умолчанию Tomcat 6.0 запускает соединение HTTP на порту 8080 и соединение AJP на порту 8009. Вы, возможно, захотите изменить эти порты по умолчанию с тем, чтобы избежать конфликтов с другим сервером в системе. Это делается изменением следующих строк в
/etc/tomcat6/
server.xml
:

20
http://tomcat.apache.org/tomcat-6.0-doc/index.html

Веб-серверы
232

5.2.2. Изменение используемой JVM
По умолчанию Tomcat сначала работает с OpenJDK-6, затем пробует Sun's
JVM, а затем все остальные JVM. Если у Вас установлены разные JVM, Вы можете указать, какую из них использовать, путем установки JAVA_HOME в
/
etc/default/tomcat6
:
JAVA_HOME=/usr/lib/jvm/java-6-sun
5.2.3. Объявление пользователей и ролей
Имена пользователей, пароли и роли (группы) могут быть централизованно объявлены в контейнере Servlet. В Tomcat 6.0 это делается в файле
/etc/
tomcat6/tomcat-users.xml
:


5.3. Использование стандартных веб-приложений Tomcat
Tomcat поставляется с веб-приложениями, которые вы можете установить для документирования, администрирования или с демонстрационными целями.
5.3.1. Документация по Tomcat
Пакет tomcat6-docs содержит документацию по Tomcat 6.0, собранную как веб-приложение, доступ к которому по умолчанию вы можете получить на http://yourserver:8080/docs. Вы можете установить его, введя следующую команду в терминале:
sudo apt-get install tomcat6-docs
5.3.2. Веб-приложения для администрирования Tomcat
Пакет tomcat6-admin содержит два веб-приложения, которые могут использоваться для администрирования сервера Tomcat с использованием веб-интерфейса. Вы можете установить их, введя следующую команду в терминале:
sudo apt-get install tomcat6-admin

Веб-серверы
233
Первое — это веб-приложение manager, которое по умолчанию доступно на http://yourserver:8080/manager/html. Оно в основном используется для получения статуса сервера и перезапуска web-приложений.
Доступ к приложению manager по умолчанию защищён: вы должны определить пользователя с ролью "manager" в
/etc/tomcat6/tomcat- users.xml перед тем, как получите к нему доступ.
Второе — это веб-приложение host-manager, которое по умолчанию доступно на http://yourserver:8080/host-manager/html. Оно может использоваться для динамического создания виртуальных хостов.
Доступ к приложению host-manager также по умолчанию защищён:
вы должны определить пользователя с ролью "admin" в
/etc/tomcat6/
tomcat-users.xml перед тем, как получите к нему доступ.
По причинам безопасности пользователь tomcat6 по умолчанию не может выполнять запись в каталог
/etc/tomcat6
. Некоторые возможности этих административных веб-приложений (разворачивание приложений,
создание виртуальных хостов) требуют права на запись в этот каталог.
Если вы хотите использовать эти возможности, выполните следующее для того, чтобы дать пользователям группы tomcat6 необходимые права:
sudo chgrp -R tomcat6 /etc/tomcat6
sudo chmod -R g+w /etc/tomcat6
5.3.3. Примеры веб-приложений Tomcat
Пакет tomcat6-examples содержит два веб-приложения, которые могут использоваться для проверки или демонстрации возможностей Servlets и JSP, по умолчанию они доступны на http://yourserver:8080/examples. Вы можете установить их, выполнив в терминале следующую команду:
sudo apt-get install tomcat6-examples
5.4. Использование частных сущностей
Tomcat большей частью используется в сценариях разработки и тестирования, где использование единых настроек системы не отвечает требованиям всех пользователей этой системы. Пакеты Tomcat 6.0 в
Ubuntu поставляются с инструментами, которые позволяют для каждого отдельного пользователя создавать свои настройки, позволяя им (без прав суперпользователя) использовать отдельные разрешённые библиотеки,
установленные системой.

Веб-серверы
234
Возможен запуск общесистемной и частных сущностей параллельно,
так как они не используют одни и те же порты TCP.
5.4.1. Установка поддержки частных сущностей
Вы можете установить все необходимое для запуска частных сущностей,
выполнив в терминале следующую команду:
sudo apt-get install tomcat6-user
5.4.2. Создание частной сущности
Вы можете создать каталог частной сущности, выполнив в терминале следующую команду:
tomcat6-instance-create my-instance
Это создаст новый каталог my-instance со всеми необходимыми подкаталогами и скриптами. Вы можете, например, установить общие библиотеки в подкаталог lib/
и развернуть веб-приложения в подкаталоге webapps/
. По умолчанию никакие веб-приложения не устанавливаются.
5.4.3. Настраиваем вашу частную сущность
Исходные конфигурационные файлы Tomcat для вашей частной установки,
находятся в подкаталоге conf/
. Вы можете, например, отредактировать файл conf/server.xml для изменения портов, используемых по умолчанию вашей персональной установкой Tomcat, во избежание конфликтов с другими запущенными установками.
5.4.4. Запуск/остановка вашей частной сущности
Вы можете запустить вашу частную сущность, введя следующую команду в строке терминала (предполагается, что сущность располагается в каталоге my-instance
)
my-instance/bin/startup.sh
Вам следует проверить подкаталог logs/
на наличие ошибок. Если вы получили ошибку java.net.BindException: Address already in
use:8080, это значит, что используемый вами порт уже занят,
и вам следует изменить его.
Вы можете остановить вашу сущность, введя следующую команду в строке терминала (предполагается, что сущность располагается в каталоге my- instance
)

Веб-серверы
235
my-instance/bin/shutdown.sh
5.5. Ссылки
• Для более детальной информации посетите сайт Apache Tomcat
21
Tomcat: The Definitive Guide
22
— хороший источник информации по созданию веб-приложений с использованием Tomcat.
• Здесь можно увидеть список дополнительной литературы Tomcat Books
23
• Кроме того, смотрите Ubuntu Wiki Apache Tomcat
24 21
http://tomcat.apache.org/
22
http://oreilly.com/catalog/9780596003180/
23
http://wiki.apache.org/tomcat/Tomcat/Books
24
https://help.ubuntu.com/community/ApacheTomcat5
1   2   3   4   5   6   7   8   9   10   ...   16


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал