Народ, привет!
Чот я голову сломал.
Несколько месяцев назад я делал пет-проект, в котором предполагается обмен сообщениями между пользователями.
Решил настроить это через nodejs.
Всё настроил, проверил. Всё работало, сообщения уходили и приходили, при этом использовался ssl и nodejs прекрасно с ним работал.
Потом я отложил этот проект до лучших времен и ничего вообще не трогал. Иногда только заходил посмотреть, что ничего не упало.
И вот сегодня захожу снова, а друпал говорит что nodejs модуль не видит сертификата, точнее говорит, что срок действия его истёк.
Там идёт обращение по 8080 и 8081 порту. Сам сайт сертификат видит и он действителен до сентября. А по 8080 и 8081 порту говорит что он истёк 3 июля.
Файлы сертификата на месте.
В чём тут может быть порыта собака?
Ладно бы он никогда не работал, но сначала то всё было ок!!!
Комментарии
Прошу прощения что вклиниваюсь в тему, но давно хотел спросить: а почему именно nodejs используется для обмена сообщениями? Что такого есть в nodejs, что в принципе нереализуемо на PHP?
А причина проста - вебсокеты. Обмен сообщениями в реальном времени безо всякого аякса. Юзер отправил - другой тут же получил. И всё это без дёргания сервера аяксом - красиво же.
Сейчас всё заработало.
Спасибо, более-менее понятно. Вижу, что есть реализации websockets и для PHP, но при этом опытные люди пишут, что все равно проще это делать на nodejs даже если основной сайт на PHP.![Wink](https://drupal.ru/sites/all/modules/contrib/smiley/packs/kolobok/wink.gif)
Поверю опытным людям, самому глубоко вникать пока повода нет
Просто для друпала был модуль уже - node js integration и ещё один - private messages, кажется так.
Вот я и взял уже это решение. Там правда конечно в последнем модуле всё неидеально и глюки, но главное что мессаги ходят туда-сюда, а интерфейс я надеюсь подшаманить с помощью css....
Я бы предположил, что сам сайт работает с одними сертификатами, а для сервера ноды какие-то другие были указаны (возможно, что полученные через letsencrypt, с малым сроком жизни. Или для сайта сертификат перевыпустился автоматически, а для ноды он лежит в другом месте). В конфигах можно найти эти сертификаты и посмотреть в них срок действия.
Народ, я разобрался в чём дело. Оказывается пользователя, под которым запускается js скрипт не было доступа к файлам сертификата. При чем сначала то он был, а при перевыпуске эти чортовы сертификаты поменяли хозяина и права сбросились (как бы это решить то автоматически.... надо думать...)
При чем, я менял права уже, но пока не перезапустил сами приложения js (типа forever restartall) он всёравно не работал. Вот так вот.
То есть такое ощущение, что даже если настроить права к сертификатам для пользователя js, всёравно при перевыпуске он будет видеть старые и нужно время от времени перезапускать сами приложения js??? ну и гемор )))
Приложения на node.js имеют свойство "подтекать" со временем, сжирая всё больше и больше ресурсов и работая всё медленнее. Поэтому иногда имеет смысл ставить перезапуск приложения в крон, например, раз в сутки или раз в неделю, в зависимости от нагруженности приложения.
да, я уже так и сделал - тупо раз в сутки перезапускаю forever restartall и всё. Заодно и с сертификатами теперь вроде как проблем быть не должно.