LINUX.ORG.RU
решено ФорумAdmin

Node.js то падает, то поднимается. 502 Bad Gateway nginx

 ,


0

2

Стоит корпоративный мессенджер Rocket.chat. Все было нормально до сегодняшнего утра, в процессе работать стал падать, попытки переподключения и в итоге 502 Bad Gateway. Как я понял процесс node.js вырубается сам по себе, то он занимает 3000 порт и все работает, пару минут поработает и снова падает. Куда копать? Ничего не менял и не обновлял. В логах рокета:

2020/04/02 12:03:42 [error] 4633#0: *435 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.8.89, server: *servername*, request: «GET /_timesync HTTP/1.1», upstream: "http://127.0.0.1:3000/_timesync", host: «*servername*», referrer: «https://*servername*/channel/korporativnyi-chat»

nginx.conf

# Upstreams
upstream backend {
server 127.0.0.1:3000;
keepalive 32;
}

 # HTTPS Server
 server {
 listen 443;
 server_name *servername;

   # You can increase the limit if your need to.
  client_max_body_size 200M;

   error_log /var/log/nginx/rocketchat.access.log;

     ssl on;
     ssl_certificate /etc/letsencrypt/live/*servername/fullchain.pem; # managed by Certbot
     ssl_certificate_key /etc/letsencrypt/live/*servername/privkey.pem; # managed by Certbot
     include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
     ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # don’t use SSLv3 ref: POODLE

     #root /usr/share/nginx/html;
     #index index.html index.htm;

     location / {
     proxy_pass http://backend/;
     proxy_http_version 1.1;
     proxy_set_header Upgrade $http_upgrade;
     proxy_set_header Connection "upgrade";
     proxy_set_header Host $http_host;

      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forward-Proto http;
      proxy_set_header X-Nginx-Proxy true;
      proxy_read_timeout 5m;
       proxy_redirect off;
       }
       }
       #if ($https != on)
    server    {
    listen 80;
server_name *servername;
               return 301 https://$host$request_uri;

}



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

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

не нашел. Будто нет. В общем журнале выдал

There is an issue with node-fibers апр 02 13:45:20 corpchat rocketchat[4551]: /opt/Rocket.Chat/programs/server/node_modules/fibers/bin/linux-x64-72/fibers.node is missing. апр 02 13:45:20 corpchat rocketchat[4551]: Try running this to fix the issue: /usr/local/bin/node /opt/Rocket.Chat/programs/server/node_modules/fibers/build апр 02 13:45:20 corpchat rocketchat[4551]: /opt/Rocket.Chat/programs/server/node_modules/fibers/fibers.js:20 апр 02 13:45:20 corpchat rocketchat[4551]: at Object. (/opt/Rocket.Chat/programs/server/node_modules/fibers/fibers.js:20:9)

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

не нашел. Будто нет.

Найди как их включить. Скорее всего в какие-нить лимиты по памяти упирается.

ya-betmen ★★★★★
()
Ответ на: комментарий от Anoxemian

Ищу. Включить никак. Ставлю программу для логирования node.js

maximice
() автор топика
Ответ на: комментарий от Anoxemian

Cannot find module ‘/opt/Rocket.Chat/programs/server/node_modules/fibers/fibers.js:90’

Если что nodejs и npm переустанавливал. Fibers кстати тоже переставлял с помощью npm

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

Если что nodejs и npm переустанавливал. Fibers кстати тоже переставлял с помощью npm

внимательно пересмотри выхлоп установки рокета и фиберов, не было ли там ошибок

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

прямо торжество чудотехнологий. mongo+nodejs и полное непонимание где смотреть логи и как дебажить.

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

Да как бы вот . В первой строке команда

/usr/local/bin/node /opt/Rocket.Chat/main.js
/opt/Rocket.Chat/programs/server/node_modules/fibers/fibers.js:90
                                        return fn.apply(this, arguments);
                                                  ^

TypeError: require(...).enable is not a function
    at module (packages/modules.js:264:30)
    at fileEvaluate (packages/modules-runtime.js:336:7)
    at Module.require (packages/modules-runtime.js:238:14)
    at require (packages/modules-runtime.js:258:21)
    at module (packages/modules.js:19:1)
    at fileEvaluate (packages/modules-runtime.js:336:7)
    at Module.require (packages/modules-runtime.js:238:14)
    at require (packages/modules-runtime.js:258:21)
    at packages/modules.js:4467:15
    at packages/modules.js:4474:3
maximice
() автор топика
Ответ на: комментарий от Deleted

На харде все норм. df -h

Файловая система        Размер Использовано  Дост Использовано% Cмонтировано в
devtmpfs                  3,9G            0  3,9G            0% /dev
tmpfs                     3,9G            0  3,9G            0% /dev/shm
tmpfs                     3,9G         8,9M  3,9G            1% /run
tmpfs                     3,9G            0  3,9G            0% /sys/fs/cgroup
/dev/mapper/centos-root    50G          16G   35G           31% /
/dev/sda1                1014M         231M  784M           23% /boot
/dev/mapper/centos-home   142G          33M  142G            1% /home
tmpfs                     783M            0  783M            0% /run/user/2
tmpfs                     783M            0  783M            0% /run/user/0

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

free -m

 
             total        used        free      shared  buff/cache   available
Mem:           7821         653        6623           8         544        6929
Swap:          8063           0        8063

в сервисе

MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01
MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01
ROOT_URL=http://*mysite
PORT=3000

[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.target mongod.target
[Service]
ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 ROOT_URL=http://localhost:3000/ PORT=3000
[Install]
WantedBy=multi-user.target

Environment=LD_PRELOAD=/opt/Rocket.Chat/programs/server/npm/node_modules/sharp/vendor/lib/libz.so

Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01
ROOT_URL=http://127.0.0.1:3000/ PORT=3000 LD_PRELOAD=/opt/Rocket.Chat/programs/server/npm/node_modules/sharp/vendor/lib/libz.so

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

если так выполнить, чего пишет ?
export MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01
export MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01
export ROOT_URL=http://localhost:3000/
export PORT=3000

/usr/local/bin/node /opt/Rocket.Chat/main.js

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

Писал выше , что делал как на одном из форумов и советовали так. Пишет вот это:

/usr/local/bin/node /opt/Rocket.Chat/main.js
/opt/Rocket.Chat/programs/server/node_modules/fibers/fibers.js:90
                                        return fn.apply(this, arguments);
                                                  ^

TypeError: require(...).enable is not a function
    at module (packages/modules.js:264:30)
    at fileEvaluate (packages/modules-runtime.js:336:7)
    at Module.require (packages/modules-runtime.js:238:14)
    at require (packages/modules-runtime.js:258:21)
    at module (packages/modules.js:19:1)
    at fileEvaluate (packages/modules-runtime.js:336:7)
    at Module.require (packages/modules-runtime.js:238:14)
    at require (packages/modules-runtime.js:258:21)
    at packages/modules.js:4467:15
    at packages/modules.js:4474:3

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

Порт схватился на 5 минут , а потом снова упал…не пойму, что NOde надо. Главное работал себе и работал.

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

попинать монгу, внимательнее рассматривать все возможные логи
скиньте на pastebin /var/log/syslog

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

С тех пор как все упало, да. Все руками перезапускал

maximice
() автор топика
Ответ на: комментарий от xDShot

Его я тоже смотрел. Там все тоже самое что и выше:

/opt/Rocket.Chat/programs/server/node_modules/fibers/fibers.js:90 >> return fn.apply(this, arguments);

maximice
() автор топика
Ответ на: комментарий от Deleted

Переустанавливаю все, кроме Монги В конце делаю команду

/usr/local/bin/node /opt/Rocket.Chat/main.js

Проходит весь процесс, работает 5 минут и снова падает все. Да что за фигня. Почему node отвергает со временем 3000 порт?

maximice
() автор топика
Ответ на: комментарий от Deleted

не умею им пользоваться А netstat показывал сначала что порт занят node,а когда чат отваливался, все. Понятно что это и есть главная проблема, а причина не ясна

maximice
() автор топика
Ответ на: комментарий от Deleted

Короче осталось все на том, что на шаге

/usr/local/bin/node /opt/Rocket.Chat/main.js

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

maximice
() автор топика
Ответ на: комментарий от Deleted

В логе монга вроде обычные запросы и ответы обращения к БД. Ничего такого не вижу

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

Или залезть в код, посмотреть, что оно вызывает и разобраться, или поставить всё по новой рядом. Я думаю на какие-то глобальные модули в npm, ты его переставил и всё потёр. Или что-то набедокурил с путями, так, что npm ни черта не видит.

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

callstack какой-то дикий, не понятно кто вызвал require. Надо ковыряться.

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

Если что nodejs и npm переустанавливал. Fibers кстати тоже переставлял с помощью npm

Ну или у тебя не та версия Fibres.

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