01:21 Nginx web server |
Сьогодні, під катом, хочу ознайомити вас з 3-ім по
популярності веб-сервером світу - NGINX. Серед активних сайтів світу він поступається
позиціями тільки веб-серверу Apache. Уже
довгий час він обслуговує сервери багатьох високонавантажених російських, та
закордонних сайтів (Rambler, Yandex, Mail.ru, Begun, Wordpress.com, SourceForge.net, vk.com, Facebook, Groupon, Diary.ru, Rutracker.org) Приведу трішки
історії з wiki: nginx (англ. engine
x) (по-українськи вимовляється як енджін-екс) - веб-сервер і поштовий
проксі-сервер, що працює на Unix-подібних операційних системах (тестувалася
збірка і робота на FreeBSD, OpenBSD, Linux, Solaris, Mac OS X, AIX і HP-UX).
Починаючи з версії 0.7.52 з'явилася бінарна збірка під Microsoft Windows. Ігор Сисоєв почав
розробку в 2002-му році. Восени 2004 року вийшов перший публічно доступний
реліз. Станом на 2012 рік, підтримка та доопрацювання nginx триває. Можу додати, що в
Сисоєва усе вийшло напрочуд добре, і Nginx швидко зайняв лідируючі позиції серед
найпопулярніших серверів. Він
позиціонується як простий, швидкий і надійний сервер не перевантажений
функціями. Його застосування доцільніше, перш за все для статичних сайтів, або
проксі-сервера, ніж для динамічних сайтів. Ну що ж, опишемо
його технічні характеристики, додаткові переваги, порівняно з іншими
серверами, можливості почтового проксі-сервера(матеріал взято з оф.сайту Nginx (nginx.org/ru/)). Основна
функціональність HTTP-сервера · Обслуговування
статичних запитів, індексних файлів, автоматичне створення списку файлів, кеш
дескрипторів відкритих файлів; · Акселероване
зворотнє проксування з кешуванням, простий розподіл навантаження і
відмовостійкість; · Акселерована
підтримка FastCGI, uwsgi, SCGI і memcached серверів з кешуванням, простий
розподіл навантаження і відмовостійкість; · Модульність,
фільтри, в тому числі стиск (gzip), byte-ranges (докачка), chunked відповіді,
XSLT-фільтр, SSI-фільтр, перетворення зображень; кілька підзапитів на одній
сторінці, оброблювані в SSI-фільтрі через проксі або FastCGI, виконуються
паралельно; · Підтримка
SSL та розширення TLS SNI. Переваги Nginx · Віртуальні
сервери, що визначаються за IP-адресою та імені; · Підтримка keep-alive і pipelined з'єднань; · Гнучкість
конфігурації; · Зміна
установок та оновлення виконуваного файлу без перерви в обслуговуванні
клієнтів; · Налаштування
форматів логів, буферізованние запис в лог, швидка ротація логів; · Спеціальні
сторінки для помилок 3xx-5xx; · rewrite-модуль: зміна URI за допомогою регулярних виразів; · Виконання
різних функцій залежно від адреси клієнта; · Обмеження
доступу в залежності від адреси клієнта і за паролем (HTTP Basic аутентифікація); · Перевірка HTTP referer; · Методи PUT, DELETE, MKCOL,
COPY і MOVE; · FLV і MP4 стрімінг; · Обмеження швидкості
віддачі відповідей; · Обмеження
числа одночасних з'єднань і запитів з однієї адреси; · Вбудований Perl. Функціональність
поштового проксі-сервера · Перенаправлення
користувача на IMAP-або POP3-сервер з використанням зовнішнього HTTP-сервера аутентифікації; · Перевірка
користувача за допомогою зовнішнього HTTP-сервера аутентифікації і перенаправлення з'єднання на внутрішній SMTP-сервер; · Методи аутентифікації: · POP3: USER / PASS, APOP,
AUTH LOGIN/PLAIN/CRAM-MD5; · IMAP: LOGIN, AUTH
LOGIN/PLAIN/CRAM-MD5; · SMTP: AUTH
LOGIN/PLAIN/CRAM-MD5; · Підтримка SSL; · Підтримка STARTTLS і STLS. Протестовані ОС і платформи · FreeBSD 3 - 10 / i386;
FreeBSD 5 - 10 / amd64; · Linux 2.2 - 3 / i386;
Linux 2.6 - 3 / amd64; · Solaris 9 / i386, sun4u;
Solaris 10 / i386, amd64, sun4v; · AIX 7.1 / powerpc; · HP-UX 11.31 / ia64; · Mac OS X / ppc, i386; · Windows XP, Windows Server
2003. Не буду більше
копіпастити, і приводити інші характеристики і описи, ви самі можете
переглянути їх на сайті Nginx. Покінчимо
з офіційним представленням. Додам від себе. Сервер початково
розроблявся під Unix-подібні
системи, тільки з версії 0.7.52 почались
бінарні збірки під Windows, але на практиці, в основному більше 90% серверів Nginx чудово працюють під Unix. Основним перевагами Nginx, в сукупності з легкістю (займає мало місця в
пам'яті) - це: - Швидка видача статичних файлів
(картинки, javascript, css, ...); - Проста можливість організувати роботу з
декількома дублюючими серверами; - Спрощене оновлення підтримки HTTPS, щоб при цій процедурі не доводилося оновлювати
робочий сервер, на якому працюють ваші скрипти. - Ще
одним вагомим плюсом відзначив би вбудованість на відміну від Apache Зв'язка Apache +
Nginx Для підтримки
з'єднання Apache тримає окремий процес, але всім відомо, що динамічний контент
завантажується швидше статичного, а це означає, що більшість часу (під час
віддачі картинок з сайту) у апача буде висіти абсолютно непотрібний процес, що
забиває оперативну пам'ять. Для цього і встановлюється Nginx. Він бере на себе
роль роздавальника статичного контента і Апач залишається тільки віддати
динаміку і вивантажити процес з ОЗУ. Інше бере на себе Nginx, який споживає
дуже малу кількість ресурсів. Переваги подібної схеми можна зрозуміти на
невеликому прикладі. Уявіть собі, що web-сервер під управлінням
Apache необхідно обслужити близько 1000 запитів одночасно, причому багато хто з
цих клієнтів, підключені до повільних каналів зв'язку. У разі
використання apache ми отримаємо 1000 процесів httpd на кожен з яких буде
виділена оперативна пам'ять, і ця пам'ять не звільниться до тих пір, поки
клієнт не отримає запитаний контент. У випадку схеми з
застосуванням front end (Nginx)/ back end(Apache) сервера отримаємо
значну економію системних ресурсів за рахунок того, що після того як прийшов
запит клієнта, nginx передає запит apache і
швидко отримує відповідь. У підсумку apache,
після того як віддав відповідь nginx,
звільняє пам'ять, далі з клієнтом взаємодіє web сервер nginx,
який якраз і написаний для роздачі статичного контенту, великій кількості
клієнтів, при незначному споживанні системних ресурсів. Єдиний мінус nginx -
це більш професійне рішення, ніж apache, відповідно порад, документації і
подібного по ньому трохи менше. В принципі, якщо ви збираєтеся працювати з
високими навантаженнями раджу звернути вашу увагу на цей чудовий веб-сервер. |
|
Всього коментарів: 0 | |