Сайт падает через некоторое время после запуска с ошибкой EADDRINUSE для порта 80 - PullRequest
0 голосов
/ 24 мая 2019

ВЫПУСК

Я создал веб-сайт, основанный на реакции, который работает на узле-экспресс-сервере.

У меня есть внутренний сервер, работающий на порту 3000, который работает нормально, но веб-сайт работает на порту 80.

Когда я запускаю свой сайт (https://www.edvicer.com), используя pm2 в качествеpm2 start server.js, через некоторое время (час или два) веб-сайт падает, и я получаю следующую ошибку в журналах pm2, которая означает, что порт 80 уже используется:

errno: 'EADDRINUSE',
code: 'EADDRINUSE',
syscall: 'listen',
address: '::',
port: 80

Это произошло рядом

Я попытался перезагрузить и синхронизировать сервер. Я использовал screen (screen -r) для запуска server.js, и я пытался запустить его, используя node server.js &, но все время одно и то жечто-то происходит.

Основной код для server.js:

[const httpsOptions= {
  cert: fs.readFileSync(path.join(__dirname, 'ssl', 'cert1.crt'), 'utf8'),
  key: fs.readFileSync(path.join(__dirname, 'ssl', 'cert1.key'), 'utf8'),
  ca: fs.readFileSync(path.join(__dirname, 'ssl', 'intermediate.crt'), 'utf8')
}

var redirectToHTTPS = require('express-http-to-https').redirectToHTTPS;

app.use(redirectToHTTPS(\[/localhost:(\d{4})/\], \[/\/insecure/\], 301));
app.use(express.static(path.join(__dirname, 'src')));

app.get('/', function (req, res) {
  res.sendFile(path.join(__dirname, 'src', 'index.html'));
});
  http.createServer(app).listen(80);
  https.createServer(httpsOptions, app).listen(443);][1]

Ошибки

После того, как я запускаю веб-сайт и когда он работает нормально, я видел портыused:

netstat -tulpn | grep: 80

Используя netstat -tulpn | grep: 80, я получаю что-то вроде:

tcp  0  0  :::80  :::*  LISTEN  2465/node /home/erd

Когда я выполняю netstat -tulpn| grep: 80 после сбоя веб-сайта я получаю 2 ответа:

tcp  0  0  127.0.0.1:80  0.0.0.0:*  LISTEN  16145/httpd

tcp  0  0  :::80         :::*       LISTEN  16145/httpd

ps -ef

Точно так же я пробовал ps-Есть до того, как сайт зависает, я получаю:

UID    PID    PPID    CMD

root   2465   3291    node /home/erdsmsmy/public_html/edvicer/server.js

После сбоя веб-сайта я получаю много ответов:

UID      PID      PPID      CMD

root     16145    1         /usr/sbin/httpd -k start

nobody   16146    16145     /usr/sbin/httpd -k start

nobody   16148    16145     /usr/sbin/httpd -k start

nobody   16149    16145     /usr/sbin/httpd -k start

nobody   16150    16145     /usr/sbin/httpd -k start

nobody   16151    16145     /usr/sbin/httpd -k start

nobody   16152    16145     /usr/sbin/httpd -k start

Я не могу понять, что происходит.Пожалуйста, помогите.

1 Ответ

0 голосов
/ 04 июля 2019

Apache препятствовал пути к серверу.Я удалил Apache, так как использую сервер на основе Express, поэтому мне не нужен Apache, и httpd прекратил создавать проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...