LINUX.ORG.RU

В nginx 1.3 появилась поддержка веб-сокетов

 , , ,


0

2

В последней версии сервера nginx добавлена реализация протокола WebSocket. Нововведение, доступное в базовой поставке, позволит существенно упростить создание веб-приложений, требующих обмена сообщения между сервером и клиентом в режиме реального времени.

WebSocket — технология, делающая возможным двунаправленный обмен данными между клиентом и сервером поверх TCP-соединения. Протокол требует реализации как на клиенте, так и на сервере. В настоящее время поддержка веб-сокетов имеется в десктопных версиях всех популярных браузеров.

nginx — открытый веб- и обратный прокси-сервер, отличительными чертами которого являются высокая производительность и нетребовательность к ресурсам. nginx — второй по популярности веб-сервер в мире, обслуживающий около 30 % высоконагруженных сайтов.

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

★★

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

отлично, только документации не вижу? надо там чего в конфигах или как?

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

По сути он проксирует с нужным заголовком. В траке есть пример конфигурации:

location /chat/ {
    proxy_pass ​http://backend;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

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

Apple-ch ★★ ()

Шикарно! Я два года этого ждал! Теперь не нужно будет заморачиваться с отдельной поддержкой на бекэнде.

ComradeDOS ()

зачем она нужна?

zgen ★★★★★ ()

Веб-сокеты таки уже стабилизировались?

Binary ★★★★★ ()

Я не силен в этих вопросах, но как там обстоят дела с безопасностью этой фичи?

pathfinder ★★★ ()
Последнее исправление: pathfinder (всего исправлений: 1)
Ответ на: комментарий от Binary

Таки стандартизировались:

The WebSocket API is being standardized by the W3C, and the WebSocket protocol has been standardized by the IETF as RFC 6455.

Можно надеяться, что и стабилизация (что бы это ни значило) не за горами.

Apple-ch ★★ ()
Ответ на: комментарий от zgen

Ну nginx давно ставят прослойкой, ограничивать коннекты и вести логи. А со всякими поделками, которые поддерживали вебсокеты, были проблемы.

Vit ★★★★★ ()

WebSocket — технология, делающая возможным двунаправленный обмен данными между клиентом и сервером поверх TCP-соединения.

Судя по этому определению, оно не нужно >_<

sv75 ★★★★★ ()

Чувствую, что скоро придется переходить с lighttpd на nginx... А жаль, lighttpd хороший был, но теперь совсем не развивается.

Хотя есть 2.0 ветка, но не знаю, насколько она готова http://git.lighttpd.net/lighttpd/lighttpd2.git/

XVilka ★★★★ ()
Последнее исправление: XVilka (всего исправлений: 1)

Все, Apache+Squid можно закапывать?

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

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

Можно, кстати, было бы на лоре запилить показ новых комментариев в режиме реального времени, как на Вёрдже ツ

Apple-ch ★★ ()

Это просто шикарно! Даже залогинюсь по такому поводу.

Drap ()
Ответ на: комментарий от Apple-ch

Основная выгода в том, что сервер может слать данные клиенту без дополнительного запроса от последнего.

Предлагаю заодно уж закопать http, все браузеры и перейти обратно от веб приложений к обычным. Вон на мобильных платформах так уже.

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

Сперва стали переводить все приложения в веб чтобы подсадить всех юзеров на saas и заиметь тонны нефти теперь вдруг выяснилось что этим приложениям для того чтобы стать полноценными нужно чтобы браузер стал полноценной осью. Теперь там уже есть и сокеты и сохранение файлов, и доступ к opengl непонятно только нафиг все это нужно если у нативных приложений все это было уже 20 лет назад.

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

Ты забыл-загрузка «интерфейса» по минуте минимум(и рендеринг в реальном времени)(адепты веббраузеров уже считают нормальным такие тормоза и полностью привыкли)+нехватку гигабитных интернетов(т.е. скрость чтения с обычного жесткого диска в сотни раз быстрее гигабитки) из за чего-загрузка гагабайтных вебприложений невозможна(адептам веба не увидеть кризиса в браузере да(или ждать 2 часа загрузки,но им не привыкать))...

Да веб технологии-игрушка не более,ни для чего серьезного не годиться.

anonymous ()
Ответ на: комментарий от mio

непонятно только нафиг все это нужно

Ты же сам ответил: чтобы заиметь тонны нефти. Нативные приложения проблематично монетизировать по подписке. Вот некрософт давно такую схему мечтает внедрить и что-то никак пока.

Apple-ch ★★ ()

Я так понял он сможет проксировать вебсокет? Или еще и поддерживать работу приложения с вебсокетом внутри самого nginx?

vertexua ★★☆☆☆ ()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от XVilka

Договорились. Не буду к ноде апач прикручивать.

Vit ★★★★★ ()
Ответ на: комментарий от Apple-ch

Если требовать подключение к интернету, так же как его требуют SaaS, то в чём, вообще, трудность? Переносишь часть вычислений на сервер, и всё.

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

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

vertexua ★★☆☆☆ ()
Ответ на: комментарий от Apple-ch

Выходит, что у тебя бакэнд всё равно должен реализовывать WebSocket'ы. Так не интересно... =( Было бы круче прокси, который инкапсулирует протокол бакэнда в WebSoket'ы.

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

Ну можно написать такой бэкпрокси, но зачем он, если HTTP 1.1 и так умеет pipeline?

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

Угу, народ на HN в том же духе высказывается. И всё равно иметь такой функционал из коробки очень удобно.

Apple-ch ★★ ()
Ответ на: комментарий от Binary

Если требовать подключение к интернету

Это требование ведь надо чем-то оправдать, не так ли?

SaaS в вебе компенсирует это требование отсутствием необходимости что-либо устанавливать себе на комп (исключая браузер), обновлять, бэкапить данные и т.д.

А иметь на компе тот же офис, занимающий гигабайты жёсткого диска, и чтобы он ещё что-то там считал удалённо — бред же полнейший!

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

Ничего не мешает сделать и на десктопных ОС отсутствие этой необходимости. По поводу гигабайтов, это что за офисы у вас такие? Ну и второе: уменьшение потребляемого места тоже может иметь место быть. В общем, нужна просто хорошая песочница с хорошим API, вот только её надо разрабатывать, а веб уже есть и может прямо сейчас делать гешефт.

Зато имеем плюсы:

1. любой ЯП, а не только кастрат js

2. готовые оконные менеджеры на любой вкус, которые можно использовать как удобно, а не как табы в браузере

3. готовая инфраструктура в виде, например, привязок типов файлов к приложениям и протоколов.

ну и много ещё чего можно придумать.

Binary ★★★★★ ()

Это новая возможность DDoSить nginx?

alpha4 ()
Ответ на: комментарий от Binary

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

плюс считаем расходы на коробку-упаковку для жадных продавцов, доставку и прочую логистику и маркетинг.

а на другой чаше - никакого геморроя с установкой/поддержанием в рабочем состоянии. никаких дополнительных затрат - только необходимый лично тебе сервис.

нафантазировать альтернатив существующему вебу можно сколько угодно. только понимать нужно, что фантазёров масса была, есть и будет. веб же при всех его минусах дал людям единую точку соприкосновения.

поэтому умные люди пытаются выжать из веба максимум или трансформировать его под себя, пока фантазёры-теоретики только ноют «это нинужно» или «плохие технологии, надо другие»

мне эти разговоры про «плохой веб» напоминают историю с гентушным форком udev, бггг

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

Это кто тут ещё фантазёр, в конторе без админа всё равно никак, а всё остальное тоже решаемо, было бы желание.

А трансформировать бесконечно не получится, когда-нибудь придётся делать кардинальные изменения, постоянно костылями сыт не будешь.

Binary ★★★★★ ()
Ответ на: комментарий от Apple-ch

Можно, кстати, было бы на лоре запилить показ новых комментариев в режиме реального времени, как на Вёрдже ツ

Основная выгода в том, что сервер может слать данные клиенту без дополнительного запроса от последнего.

Это можно сделать и без вебсокетов. man SSE (Server Sent Events).

Основная выгода - это постоянный обмен данными между клиентами! (их может быть много) и сервером.

Вебсокеты особенно полезны в случае когда нужно уведомлять других клиентов (аля чаты и другие colaboration приложения) в режиме реального времени.

anonymous_ ()
Ответ на: комментарий от Binary

Так вот твои кардинальные изменения. Костылями были ajax и comet

RedPossum ★★★★★ ()

Как бы написать начальнику интернетов, что то, чего он хочет получить давно уже есть и называется X11.

anonymous ()
Ответ на: комментарий от mio

Предлагаю заодно уж закопать http, все браузеры и перейти обратно от веб приложений к обычным. Вон на мобильных платформах так уже.

Тенденция обратная и вебсокеты еще один шаг в этом направлении.

Многие мобильные приложения строятся на основе веб технологий внутри WebView :) Их распространение обусловлено тем, что многие люди привыкли использовать App Store \ Google Play для поиска приложений на мобильном устройстве. На много проще кликнуть на иконку, чем открывать браузер и рыться в закладках в поиске нужной страницы.

К тому же есть возможность представить любую веб страницу в виде приложения (на iOS так уж точно), некоторые страницы предназначены для этого и содержат информацию о иконке, splash screen'е.

anonymous_ ()
Последнее исправление: anonymous_ (всего исправлений: 1)
Ответ на: комментарий от RedPossum

Капля в море, да и то не всесильная. WebRTC вон пилят, а как p2p файлы передавать? В общем, пока всё это сильно далеко от той инфраструктуры, которую десктопы имеют уже кучу лет.

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

В общем, пока всё это сильно далеко от той инфраструктуры, которую десктопы имеют уже кучу лет.

куча лет: сотни софта, требующего постоянной соответствующей поддержки (включая доставку до конечного потребителя)

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

сам прикинешь затраты (временные и финансовые)?

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

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

Ну да, выгоднее, я не спорю, я так и сказал сразу, что делать сразу по-человечески никто не хочет, потому что гешефт хотят здесь и сейчас. Но это не значит, что в целом этот подход эффективнее, он эффективнее только здесь и сейчас.

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

мы только вначале пути.

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

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

Эти все проблемы с доставкой софта обновлением и т.д. в androidе решили например нормально. И не надо при каждом запуске выкачивать приложение по новой, и без инета все работает. Веб приложения конечному пользователю не нужны и не удобны.

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

сансара, обучение на ошибках, гуляние граблям - называй как хочешь, сути не изменит

anonymous ()
Ответ на: комментарий от Binary

делать сразу по-человечески никто не хочет

1. никто не будет тебе мешать сделать по-человечески 2. не все теоретики одновременно и практики, да ещё и сытые

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

Сообщение ни о чём. Я сразу сказал, что понимаю, что делается так из финансовых соображений.

Binary ★★★★★ ()
Ответ на: комментарий от Apple-ch

Гении с HN случайно не подсказали, как сессии поднимать, после того как они вебсокетный транспорт на обычные запросы покоцают :) ?

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

На самом деле, качественная выгода от вебсокетов именно в той части, которую покрывает SSE. Остальное или не нужно, или не критично.

Просто поддержка SSE кривовата, а исторически сложилось что начали пилить сразу вебсокеты, и отвлекаться на SSE уже просто нет смысла.

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

сотни софта, требующего постоянной соответствующей поддержки

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

anonymous ()

чем это лучше pptp + обычные tcp соединения внутри него?

cvs-255 ★★★★ ()

Долгожданная фитча, а то только у lighttpd была сторонняя реализация прокидывания вебсокетов

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