Головна » 2012 » Листопад » 15 » Nginx web server
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, в сукупності з легкістю (займає мало місця в пам'яті) - це:

- Швидка видача статичних файлів (картинки, javascriptcss, ...);

- Проста можливість організувати роботу з декількома дублюючими серверами;

- Спрощене оновлення підтримки 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, відповідно порад,  документації і подібного по ньому трохи менше. В принципі, якщо ви збираєтеся працювати з високими навантаженнями раджу звернути вашу увагу на цей чудовий веб-сервер.

Переглядів: 656 | Додав: itportalkmua | Рейтинг: 0.0/0
Всього коментарів: 0
Додавати коментарі можуть лише зареєстровані користувачі.
[ Реєстрація | Вхід ]