Удаленная отладка сервера node js с использованием intellij

Видел много сообщений об отладке удаленного сервера Node js и перепробовал множество их решений, но не смог заставить мою конфигурацию работать.

У меня Intellij установлен на ПК с Windows со следующей конфигурацией «Удаленная отладка Node.js»: Хост: my-server.dev.com Порт: 5858

сам узел-сервер установлен на UBUNTU со следующим правилом переадресации портов, определенным на нем: socat TCP-LISTEN:5858,fork TCP:localhost:6000

и сервер запускается с помощью следующей команды (кластер: /usr/local/n/versions/node/0.10.44/bin/node --debug=6000 /opt/play/play-server/main.js)

Intellij показывает сеанс как подключенный, но не может сломаться в точках останова


person Elad C.    schedule 04.04.2016    source источник


Ответы (1)


Для решения этой проблемы было сделано несколько шагов: 1. запустить исполняющую программу скрипта: "n use 0.10.44 --debug"
// (это из моего скрипта)

forever \
      --pidFile $PIDFILE \
      -a \
      -l $LOGFILE \
      --minUptime $MIN_UPTIME \
      --spinSleepTime $SPIN_SLEEP_TIME \
      start -c "n use 0.10.44 --debug" $APPLICATION_PATH 2>&1 > /dev/null &
    RETVAL=$?
  1. создайте на удаленном кластере правило для переадресации (здесь на порт 6000) socat TCP-LISTEN:5858,fork TCP:localhost:6000
  2. на вашем сервере узлов непосредственно перед разветвлением:

    var debug = process.execArgv.indexOf('--debug') !== -1; if(debug) { //Установить неиспользуемый номер порта. process.execArgv.push('--debug=' + (6000)); } var childProcess = cluster.fork();

Это позволяет мне отлаживать только один из процессов кластера, используя ту же конфигурацию Intellij, которую я задал в вопросе.

person Elad C.    schedule 04.04.2016