The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск сервера приложений NGINX Unit 1.1"
Отправлено Аноним, 02-Май-18 07:32 
Я немного растерян и не могу понять, что именно эта штука делает. Если тут есть те, кто регулярно читает рассылки этой конторы, то может подскажите, что из этого можно реализовать этой штукой? А то вроде бы и можно, и вроде бы из другой сказки.

1. Реализовать индикатор загрузки файлов и указать скорость загрузки. Да, есть отдельные плагины как к nginx, так и к php в частности, но это чужой код и я должен зависеть от него. А собственный обработчик - никак, ведь мой код выполняется лишь после загрузки всех файлов целиком.

2. Обрабатывать контент и управлять соединением в процессе запроса. Допустим на Ютуб лью 10 гиговый файл, он мне сразу начинает показывать превьюшки, с первых секунд заливки. Я тоже так хочу, а если мне заливают некропедозоопорно, то я хочу как-то дропнуть коннект, но не заносить клиента в iptables.

3. К нам пришел запрос от веб-формочки, нам надо как-то процессить присланные файлы, хотя бы тумбинашки от них посчитать. В принципе, тумбинашку сгенерить не долго и это часто делают в основном скрипте, тем самым задерживая исполнение реквеста и отдачу "ок, все впорядке". А я хочу процессить картинки в отдельном треде, чтобы одновременная заливка 500 картинок не положила мне сервер, но в этом случае я получаю condition race, так как пользователь вернется на страничку раньше, чем я успею ее обновить. Хотелось бы какой-то инструмент, чтобы я мог как-то тормознуть отдачу результата клиенту, но при этом сам скрипт-обработчик мог бы спокойно завершиться/завершить цикл и приступить к новому запросу. В общем, хочу в обработчике запросов делать тяжелые задачи и чтобы мне за это ничего не было.

4. Ко мне на файлообменник заливают файл весом в 10 гигов, не быстро так, а часов за 5. Это может быть плохая скорость у пира, где-то по пути проблемы, или у меня большой iowait, не суть важно. Почему бы мне этот файл не попробовать раздавать еще до того, как он окончательно будет долит? Скажем, мне успели залить 10 мегабайт, они уже где-то лежат на моем винте, почему бы их не отдать новоприбывшим с полной скоростью, а остаток не скормить за оставшиеся 5 часов со скоростью заливальщика? По идее, процесс один, все данные для этого есть, просто я не знаю как сервить такие вот обновляемые файлы.

5. Ну и всякие мультиплексоры тоже хочу, такие как realplexor или что там теперь пришло ему на смену? Куча клиентов присоединяется к ресурсу и ждут событий, а когда событие произошло - получают одно или несколько штук сразу. Чтобы посылать несколько событий, неплохо бы чтобы скрипт посылающий события мог бы сделать некий flush() и все ушло разом, а не 10 байт через 10 запросов.

Может есть какие-то другие решения? Просто обработчики запросов легко бы решили все эти проблемы, но у меня нету такого API. Когда-то давно начинал писать вебсервер где запросы просто складировались в память и дальше рассылались уведомления на мотив epoll, но запрокрастинировал и бросил.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру