LINUX.ORG.RU

Выпуск Tornado 6.1.0

 , ,


0

1

Tornado — это неблокирующий веб-сервер и фреймворк, написанный на Python. Tornado был создан для обеспечения высокой производительности, и может обрабатывать десятки тысяч одновременных постоянных подключений, что делает его идеальным решением для обрабоки long poll запросов, WebSockets и web-приложений, требующих долговременное соединение с каждым пользователем. Tornado состоит из веб-фреймворка, HTTP-клиента и сервера, реализованного на основе асинхронного сетевого ядра и библиотеке корутин.

Новое в этой версии:

  • это последний выпуск, поддерживающий Python 3.5, для будущих версий потребуется Python 3.6+
  • binary wheels теперь доступны для Windows, MacOS и Linux (amd64 и arm64)

httpclient

  • по умолчанию используется User-Agent Tornado/$VERSION, если параметр user_agent не указан
  • tornado.simple_httpclient всегда использует GET после 303 редиректа
  • отключение тайм-аута установкой значения ноль в request_timeout и/или connect_timeout

httputil

  • ускорен парсинг заголовка
  • parse_body_arguments теперь принимает non-ASCII ввод с неполным экранированием

web

  • RedirectHandler.get теперь принимает именованные аргументы
  • при отправке 304 ответов теперь сохраняется больше заголовков (включая Allow)
  • заголовки Etag по умолчанию теперь генерируются с помощью SHA-512 вместо MD5

websocket

  • таймер ping_interval теперь останавливается при закрытии соединения
  • websocket_connect при редиректе теперь вызывает ошибку вместо зависания

>>> Подробности

★★

Проверено: Shaman007 ()

Ответ на: комментарий от AVL2

В nginx нет lua, есть js куцый, а так можно прикрутить что угодно, я про дефолтную поставку, в теории можно и питон прикрутить заместо lua

menangen ★★★★★ ()
Ответ на: комментарий от AVL2

Ну где в nginx бизнес-логика? Он может только запрос куда-то дальше передать.

gns ★★★★★ ()
Ответ на: комментарий от AVL2

И что, какой-нибудь асинхронный коннектор к дазе банных прикрутили? Если да, то это уже не nginx, а черти что получается.

gns ★★★★★ ()
Ответ на: комментарий от AVL2

Например вот так, но после обновлений питона это стало неактуальным:

Facebook’s Tornado includes an eventloop for handing poll events on filedescriptors and native sockets. We have included a small part of Tornado (specifically its ioloop), and adapted its IOStream class into ZMQStream for handling poll events on ØMQ sockets. A ZMQStream object works much like a Socket object, but instead of calling recv() directly, you register a callback with on_recv(). Callbacks can also be registered for send events with on_send().

Его совсем со standalone веб-серверами сравнивать нельзя. Это более низкоуровневая библиотека.

steemandlinux ★★★★★ ()
Последнее исправление: steemandlinux (всего исправлений: 2)
Ответ на: комментарий от AVL2

Как-то это выглядит не очень красиво. Сложного чего-то написать трудно. Лапша в конфигах получается.

gns ★★★★★ ()
Ответ на: комментарий от gns

Да не больше обычного лапши. Есть вставка луа блоков, это для простойи логики. А есть вставка луа файлов, если программа нужна.

AVL2 ★★★★★ ()
Ответ на: комментарий от AVL2

Этто ж на каждый URL свой location. Если у тебя мелкий REST запросов на 30-40, то уже развесисто получается. Да и вообще, зачем мешать быстрый nginx с бекендом? Скриптовый язык полезен для рутинных задач, но делать на нем что-то тяжелое — сомнительное дело.

gns ★★★★★ ()
Ответ на: комментарий от gns

С какой стати?

Тоже самое, что и в любом сервере приложений. можно на урлы вешать один обработчик, можно на каждый урел свой обработчик, можно прописать свой обработчик соответствий между урлами и обработчиками, чтобы динамически выбирать, а не просто регэкспами разбрасывать. Можно простые запросы сразу терминировать, например редиректы, хитрый разгон между приложениями или браузерами или редисовские запросы и распределение по бекэндам.

Там используется луажит, вполне бодренько пляшет, скрипты компилирует и кеширует. Здорово дополняет нжинкс.

AVL2 ★★★★★ ()
Ответ на: комментарий от AVL2

Так я ж не спорю, фича полезная. Если серьезное приложение нужно, так взять какой-нибудь Drogon, там и nginx не нужен.

gns ★★★★★ ()
Ответ на: комментарий от gns

Мне сложно сказать, по моему, отдельный легкий и быстрый обратный прокси в серьезных продуктах как раз нужен и чем серьезней продукт, тем больше он нужен. И балансировщик чем дальше тем хитрее нужен. Он должен уметь авторизовывать, следить за сессиями, отдавать статику, перенаправлять, учитывая разрешения. Возможно, не сам, не самый первый обратный прокси, а каскадно, но все равно должен.

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

AVL2 ★★★★★ ()
Ответ на: комментарий от AVL2

Давайте не путать веб-сервер с обратным прокси и полноценный сервер приложений. Мне кажется, что nginx не стоит нагружать не свойственными ему фичами. Впрочем, возможность для сервера приложений пробросить запрос дальше тоже очень полезна. Да, с помощью openresty можно написать трехзвенку, но надо ли? Мы потеряем скорость nginx'a и не получим удобного способа написать приложение.

gns ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.