Научная статья на тему 'СРАВНИТЕЛЬНЫЙ АНАЛИЗ РАБОТЫ ВЕБ-СЕРВЕРОВ APACHE И NGINX'

СРАВНИТЕЛЬНЫЙ АНАЛИЗ РАБОТЫ ВЕБ-СЕРВЕРОВ APACHE И NGINX Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
124
11
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
NGINX / APACHE / ВЕБ-СЕРВЕР / PHP / ЗАПРОС / WEB-SERVER / INQUIRY

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Латыпов Э.Ф.

В рамках данной статьи рассматривается один из методов тестирования производительности веб-серверов Apache и Nginx на примере нескольких режимов работы PHP(mod_php, FastCGI, php_fpm, Apache/Nginx).

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

COMPARATIVE ANALYSIS OF THE WORK OF WEB SERVER APACHE AND NGINX

Within the framework of this article, one of the methods for testing the performance of Apache and Nginx web servers is considered using several PHP operating modes (mod_php, FastCGI, php_fpm, Apache / Nginx).

Текст научной работы на тему «СРАВНИТЕЛЬНЫЙ АНАЛИЗ РАБОТЫ ВЕБ-СЕРВЕРОВ APACHE И NGINX»

5. Кузнецов, К. Конкурсные закупки: торги, тендеры, конкурсы. - СПб: Питер, 2005. - 368 с.

УДК 004.4

Латыпов Э. Ф. студент 4 курса

факультет информационных систем и технологий научный руководитель: Никульников Н.В., к.э.н.

доцент

Поволжский государственный университет телекоммуникаций и информатики

Россия, г. Самара

Latypov E.F. 4 year student Faculty of Information Systems and Technologies Volga State University of Telecommunications and Informatics

Russia, Samara city СРАВНИТЕЛЬНЫЙ АНАЛИЗ РАБОТЫ ВЕБ-СЕРВЕРОВ

APACHE И NGINX

Аннотация: В рамках данной статьи рассматривается один из методов тестирования производительности веб-серверов Apache и Nginx на примере нескольких режимов работы PHP(mod_php, FastCGI, php_fpm, Apache/Nginx).

Ключевые слова: Nginx, Apache, Веб-сервер, PHP, запрос.

COMPARATIVE ANALYSIS OF THE WORK OF WEB SERVER

APACHE AND NGINX

Annotation: Within the framework of this article, one of the methods for testing the performance of Apache and Nginx web servers is considered using several PHP operating modes (mod_php, FastCGI, php_fpm, Apache / Nginx).

Keywords: Nginx, Apache, Web-server, PHP, inquiry.

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

В связи с этим вводится множество методов их тестирования на примере различных режимов работы PHP, помогающие подобрать наиболее подходящую конфигурацию веб-сервера в зависимости от производительности и других факторов.

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

На сервере используется операционная система Centos.

Веб-серверы были установлены с начальными настройками, командами:

[root@testserver]# yum install httpd [root@testserver]# yum install nginx

Также была произведена настройка конфигурацонных файлов для работы PHP в режимах mod_php, FastCGI(Apache), php_fpm(Nginx), Apache+Nginx(backend+frontend). Дополнительные модули, кроме необходимых для работы данных режимов, подключены не были.

Для тестирования нагрузки используется утилита Apache Benchmark. Главная задача Apache Benchmark - генерировать запросы к указанному URL. Для использования Apache Benchmark необходимо установить пакет apache2-utils:

PC:~/$ sudo apt-get install apache2-utils Процесс тестирования

Для тестирования были изменены некоторые директивы в конфигурационных файлах Apache и php-fpm:

Для php-fpm - /etc/php-fpm.d/pool.d/www.conf: pm.max_children = 100 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 10 pm.max_requests = 0

Для Apache - /etc/httpd/conf/httpd.conf: <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 100 MaxRequestsPerChild 0 </IfModule>

В директории сайта был создан файл index.php со следующим содержанием:

<?php for($i = 0; $i < 1000; ++$i) { echo "Hello, World! $i "; } Параметры, использованные для тестирования нагрузки:

- общее количество запросов в течение одной сессии(-л);

- количество параллельных запросов в единицу времени(^);

- максимальное время ожидания ответа (-s). По умолчанию используется параметр со значением 30 секунд. Увеличили его до 120 секунд для избежания ошибок вида "apr_poll: The timeout specified has expired (70007)";

Конечный запрос на примере site1.ru(при значении Concurrency Level=10):

PC:~/$ ab -c 10 -n 1000 -s 120 http:/site1.ru/index.php

Тестирование проводилось с изменением значения параллельных

запросов(10, 50, 100, 200) при использовании утилиты ab. По каждому из них было произведено пять замеров, после замеров вычислялось среднее арифметическое.

№ Name Concurrency LeveklO Concurrency Level: 50 Concurrency Level: 100 Concurrency Level: 200

1 mod_php(Apache) Ш5 1228 1213 1062

2 FastCGI(Apache) 1322 12IM 1199 1073

3 php_fpnn [Nginx) 1051 1017 1007 967

4 Apache+Nginx 1009 993 975 941

Рис. 1 Результаты тестирования

Рис. 2 Гистограмма результатов

По результатам тестирования можно сделать следующие выводы:

1. при повышении количества одновременных запросов уменьшаются разница в результатах, а также скорость ответа;

2. nginx при небольшом и среднем количестве одновременных запросов медленнее apache;

3. nginx+apache работает практически сопоставимо с php_fpm(Nginx).

4. Разница между mod_php(Apache) и FastCGI(Apache) практически отсутствует.

В отличие от mod_php(Apache) и FastCGI(Apache), при режиме php_fpm(Nginx) на порту 80 используется веб-сервер Nginx, а порт 9000 используется FastCGI-сервером FPM. Nginx проксирует запросы для FPM, т.е. принимает запрос, перенаправляя его FPM по протоколу FastCGI.

При использовании mod_php(Apache) запросы обрабатываются непосредственно веб-сервером без проксирования. Данная система состоит из двух звеньев - Клиент(Apache Benchmark) и Apache. В случае с php_fpm(Nginx) система состоит из трех звеньев - Клиент^), ^^(порт 80) и FPM(порт 9000), что влияет на производительность. Ситуация со связкой Apache+Nginx аналогична, поэтому разница в результатах между

Apache+Nginx и php_fpm(Nginx) практически незаметна.

Однако, преимущество Nginx перед другими веб-серверами состоит в обработке и отдаче статического контента (html, css, js, картинки и т.п). Кроме того, Nginx способен обслуживать одновременно очень большое количество подключений, что также недоступно в случае использования Apache.

Поэтому роль Nginx как правило заключается в балансировке нагрузки, отдаче статического контента, проксированию запросов к PHP на внутренние сервера, а самое главное - к работе с медленными клиентами. В этом случае лучшим вариантом будет настройка php-fpm для обработки php запросов через него.

В случае, если требуется работа со сложными перенаправлениями, дополнительными модулями Apache, фильтрами содержимого, то в данной ситуации логично выбрать Apache в режиме mod_php или FastCGI.

Использованные источники:

1. Хоккинс, С. Администрирование Web-сервера Apache и руководство по электронной коммерции [текст]/ С. Хоккинс - Вильямс, 2000. - 330 с.

2. Айвалиотис Д. Администрирование сервера Nginx [текст]/ Д. Айвалиотис. - ДМК Пресс 2013. - 288 с.

3. Аулдс Ч. Администрирование веб-сервера Apache Linux, второе издание [текст]/ Ч. Аулдс. - Крэйг Хант лаборатория Линукс, 2002. - 624 с.

4. Колиснеченко Д. Администрирование Unix-сервера и Linux-станций [текст]/ Д. Колиснеченко. - Питер, 2011. - 400 с.

УДК 004.42

Латыпов Э. Ф. студент 4 курса

факультет информационных систем и технологий Поволжский Государственный Университет Телекоммуникаций и Информатики

Россия, г. Самара

Latypov E.F. 4year student Faculty of Information Systems and Technologies Volga State University of Telecommunications and Informatics

Russia, Samara city ОБЗОР ТЕХНОЛОГИИ COMPONENT OBJECT MODEL Аннотация

В статье представлен краткий обзор технологии Component Object Model. Были рассмотрены основные концепции и преимущества данной технологии.

Ключевые слова: Microsoft, Windows, COM, DCOM, клиент, сервер.

i Надоели баннеры? Вы всегда можете отключить рекламу.