Вернуться   Форум об интернет-маркетинге > >
Ответ
 
Опции темы
Старый 03.01.2014, 02:53   #1
пророк
 
Аватар для Metal_Messiah
 
Регистрация: 02.08.2010
Адрес: Одесса
Сообщений: 550
Репутация: 466

По умолчанию nginx или lighttpd?

Это не holy war, просто нужен совет.
Делаю серверную часть некоторого API.

PHP скрипт получает GET запросы с различных хостов, их анализирует на корректность и заносит в базу. Планируется в больших количествах, до пары десятков запросов в секунду, точнее оценить пока не могу. Явно больше 1 в секунду. Для выполнения и выдачи результата будет делаться максимум 2 MySQL запроса, но скорость отдачи результата важна.
Вообщем, Apache отпадает сразу, т.к. я уже знаю что это закончится дракой за память либо расходами на VPS с 2-4 Гб ОЗУ.

Что лучше ставить для такой задачи к PHP - nginx или lighttpd?
Интересует мнение профессионалов о производительности и сложности настройки.

С установкой lighttpd дело имел 2 раза на разных ОС, в одном из 2 случаев PHP не стал, разбираться не пришлось т.к. то был сервер для статики, пхп ставил "чтобы было" на будущее, чтобы убедиться что работает и отключить в конфиге.
С nginx дело имел только как с фронтендом к апачу (в предустановленном виде, образ ОС от хостера), насколько сложно к нему прикрутить пхп буду смотреть.
__________________
anonymous, думай что говоришь и не забывай подписать отзыв :)
Газета Сейчас - свежие новости на автомате
Metal_Messiah вне форума   Ответить с цитированием

Реклама
Старый 03.01.2014, 03:14   #2
Stek
Куда же ты, лето, а я ?
 
Регистрация: 23.05.2004
Сообщений: 2,598
Репутация: 336658

По умолчанию Re: nginx или lighttpd?

Одинаково по скорости будут. В nginx гораздо гибче конфигурация. Перешел на него где то после двух лет использования lighttpd , в общем не пожалел ни разу.

Единственный минус - нет cgi-bin, надо делать через враппер. А во всем остальном, лайт проигрывает. Поддержка слабая, фактически не развивается. В настройке лайт гораздо легче, но там и настраивать особо нечего.
__________________
Это просто мой личный сайт в моей подписи.
Stek на форуме   Ответить с цитированием
Сказали спасибо 2 пользователей:
Старый 03.01.2014, 03:30   #3
ant_key
Профессор
 
Регистрация: 23.02.2009
Сообщений: 593
Репутация: 94680

По умолчанию Re: nginx или lighttpd?

nginx + PHP-FPM (не понятно, правда, зачем вам nginx в вашей задаче, сам он с PHP никак не работает)
ant_key вне форума   Ответить с цитированием
Сказали спасибо:
Старый 03.01.2014, 08:24   #4
foxi
Mik Foxi
 
Аватар для foxi
 
Регистрация: 03.03.2011
Адрес: Budva
Сообщений: 10,228
Репутация: 1076989
Социальные сети Аккаунт в Telegram

По умолчанию Re: nginx или lighttpd?

Лайти на мой взгляд намного проще и понятнее в настройке и с ним быстрее можно достичь идеального конфига и максимальной производительности.
Stek, лайти развивается. И развивается он по своему направлению как вебсервер, а нгинкс изначально это прокси. "Медленно" лайти развивается потому что добавляется только самое необходимое, чтоб не стать вторым апачем.
__________________
Антибот защита для сайта (плохие боты не пройдут) | Телеграм ЧАТ ВебМастеров | ВебМастерские микроблоги (палятся темы)
foxi вне форума   Ответить с цитированием
Сказали спасибо:
Старый 03.01.2014, 10:41   #5
zexis
Академик
 
Аватар для zexis
 
Регистрация: 09.08.2005
Сообщений: 3,977
Репутация: 765388

По умолчанию Re: nginx или lighttpd?

Если будет до пары десятков запросов в секунду, то лучше писать демон на С, который будет обслуживать запросы через сокет.
Я писал демон для одного чата.
Задача требует хорошего знания С и API линукса.
zexis вне форума   Ответить с цитированием
Сказали спасибо:
Старый 03.01.2014, 12:05   #6
Skom
Shpongled
 
Аватар для Skom
 
Регистрация: 02.12.2006
Адрес: RU
Сообщений: 711
Репутация: 57484

По умолчанию Re: nginx или lighttpd?

Пара десятков запросов в секунду для нормального сервака это вообще ниочём.
К примеру, на одном серваке у меня сейчас 224 mysql запроса в секунду к базе под 40 гиг. LA меньше единицы. Правда, сервак достаточно суровый.

И на чём всё это делать при 20 запросах - тоже без разницы.
Всё зависит от того - как вы эти запросы пишете и организации базы.
Сам уже давно с апача ушёл на лайти, а потом перешёл на nginx ибо в лайти не было необходимого мне функционала.
__________________
Cras amet qui numquam amavit quique amavit cras amet
Skom вне форума   Ответить с цитированием
Сказали спасибо:
Старый 03.01.2014, 13:48   #7
Andreyka
Настройщик серверов
 
Аватар для Andreyka
 
Регистрация: 19.02.2005
Адрес: Odessa
Сообщений: 12,726
Репутация: 391399
Отправить сообщение для Andreyka с помощью ICQ Отправить сообщение для Andreyka с помощью AIM Отправить сообщение для Andreyka с помощью MSN Отправить сообщение для Andreyka с помощью Yahoo Отправить сообщение для Andreyka с помощью Skype™ Send Message via Jabber to Andreyka
Социальные сети Профиль на Хабрахабре

По умолчанию

Мискуль будет проблемным местом
__________________
Взлом шифрованной файловой системы LUKS - реальность!
Andreyka вне форума   Ответить с цитированием
Сказали спасибо:
Старый 03.01.2014, 16:23   #8
Metal_Messiah
пророк
 
Аватар для Metal_Messiah
 
Регистрация: 02.08.2010
Адрес: Одесса
Сообщений: 550
Репутация: 466

ТопикСтартер Re: nginx или lighttpd?

Спасибо за советы.
cgi-bin ни к чему, главное чтобы веб сервер вызвал и обработал пхп скрипт.
Для nginx вроде бы PHP-FPM - единственный вариант.
Раз по производительности одинаково, буду использовать lighttpd т.к. имел дело с ним и говорите что в настройке проще.

То что БД прийдется оптимизировать это уже неоспоримый факт.
90% нагрузки будет создаваться скриптом вида
PHP код:
//пишу навскидку, как бы блок-схема
if ($cookie)
{
    if (!
check_id($cookie)) die(); // без БД, проверка контрольной цифры
    
UPDATE table1 SET last=time() WHERE id=$cookie LIMIT 1
    INSERT INTO table2 
(....) VALUES (...)
} else
{
    
INSERT INTO table1 (...) VALUES (...);
    
//получить id вставленной записи, с учетом того что между этими выполнениями могли вставить еще что-то в другом запросе
    
SELECT id FROM table1 WHERE что-то из вставленных параметров LIMIT 1
    INSERT INTO table2 
(....) VALUES (...)
    echo 
$cookie;

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

Цитата:
Я писал демон для одного чата.
Задача требует хорошего знания С и API линукса.
Демон дело хорошее, я думал над этим. Но все таки решил делать на PHP, он не компилируемый и если что можно быстро что-то обновить, не останавливая демон.
Metal_Messiah вне форума   Ответить с цитированием
Старый 03.01.2014, 16:54   #9
zexis
Академик
 
Аватар для zexis
 
Регистрация: 09.08.2005
Сообщений: 3,977
Репутация: 765388

По умолчанию Re: nginx или lighttpd?

Цитата:
Сообщение от Metal_Messiah Посмотреть сообщение
Демон дело хорошее, я думал над этим. Но все таки решил делать на PHP, он не компилируемый и если что можно быстро что-то обновить, не останавливая демон.
Демон для обновления не нужно останавливать на долго, максимум пару секунд
Компилируете новый исполняемый файл.
Меняете старый файл на новый.
И даете команды с интервалом пару секунд.
/etc/init.d/namedaemon start
/etc/init.d/namedaemon stop

Откомпилированный код на С работает быстрее кода на PHP примерно в 40 раз.
Хотя если у вас основная нагрузка ложится на mysql то выигрыша от демона на С будет не много.
Максимальный выигрыш в скорости будет, если вы вообще без mysql сделаете и все будете хранить в оперативной памяти.
zexis вне форума   Ответить с цитированием
Сказали спасибо:
Ответ



Опции темы

Быстрый переход


Регистрация Справка Календарь Поддержка Все разделы прочитаны