Mod_voc для обновление модуля

Так как NGINX написан на чистом C, а модуль mod_voc (ngx_http_voc_module.c) написан в далеком 2006 году, то конечно он давно устарел. На сайте Voodoo, уже даже для скачивания не доступен. Поскольку суровые программеры на C такой ерундой как чаты не занимаются, то в интернете, такую экзотику как mod_voc для  Nginx актуальной версии не найти вообще. Последний ngx_http_voc_module.c поддерживал версию NGINX 1.9.10 от 26.01.2016. С последующими версиями не работал.

Пришлось переделывать все самому.

Сейчас все работает на последней на сегодняшний день версии nginx-1.23.3.  посмотреть демо-чат.

Немного ликбеза, о том что делает этот модуль - 

принимает соединение от клиента 
- передает это соединение (системный сокет) демону
- забывает про это соединение и возвращается к нормальной работе (готов обслуживать следующие запросы).
Т.е. дополнительные затраты, которые мы получаем -- обработка запроса вебсервером (нужно посмотреть УРЛ, если он "к демону" -- тогда передаем сокет, если нет -- обрабатываем сами). 
Фактически -- никакой разницы в загрузке сервера не заметно.

Из сегодняшних проблем,

  1. После обновления до версии 1.9.11. NGINX стал поддерживать динамическое подключение сторонних модулей, соответственно стандартными методами mod_voc не подключается, изменилась установка.
  2.  В новых версиях операционных систем,  используются временные каталоги с пространством имен , что означает, что каждый сервис видит совершенно разные файлы /tmp и может видеть только свои собственные файлы в этом каталоге. Обнаружить эту проблему ой как не просто, потому что каждая учетная запись может видеть папку и файл в tmp (например установите chmod 777 для проверки), и ни за что не догадаешься  что процессы увидеть сокет не могут. Как выход переместить сокет в другой каталог, например /run (ранее известный как /var/run). Если  /run/ недоступен для записи напрямую для обычного пользователя, курите этот мануал
  3. Ну и сам модуль, не компилируется на последних версиях gcc, стало быть внесены изменения для работоспособности.

Выкладываю работоспособный модуль. Мануал по установке в следующей статье.

Работоспособность проверена на Fedora 37, CentOS 7, Debian GNU/Linux 11. 

Скачать файл: ngx_http_voc_module.c [7.64 Kb] (cкачиваний: 1)  


Оставить комментарий

  • Смайлы и люди
    Животные и природа
    Еда и напитки
    Активность
    Путешествия и места
    Предметы
    Символы
    Флаги