ВЫПУСК
Я создал веб-сайт, основанный на реакции, который работает на узле-экспресс-сервере.
У меня есть внутренний сервер, работающий на порту 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
Я не могу понять, что происходит.Пожалуйста, помогите.