Как разместить приложение ExpressJS с namecheap cPanel

#javascript #node.js #express #cpanel #namecheap

#javascript #node.js #экспресс #cpanel #namecheap

Вопрос:

Я пытаюсь разместить свой веб-сайт, написанный с помощью ExpressJS, используя namecheap cPanel вместе с cloudflare, но, похоже, не могу понять, как его развернуть. Для Node.js приложение, поэтому я прибегнул к использованию терминала моей cPanel для его размещения. Вот мой базовый код ExpressJS, который я использовал для тестирования:

 const express = require('express')
const https = require("https")
const fs = require("fs")
const app = express()

const cert = fs.readFileSync("./cert.crt")
const ca = fs.readFileSync("./ca.ca-bundle")
const key = fs.readFileSync("./private.key")

let options = {
    cert: cert,
    ca: ca,
    key: key
}
let server = https.createServer(options, app)

app.get('/test', (req, res) => {
  res.send('Hello World!')
})

server.listen(8080, 'shared ip', () => { console.log("Hosting!") });
  

Всякий раз, когда я захожу в mydomain.com the index.html файл обрабатывается как обычно, но когда я захожу в mydomain.com/test Я получаю 404 не найдено. При просмотре запроса GET мой сайт, похоже, получает IP-адрес моего сервера с указанием порта 443 вместо 8080 . Затем, когда я захожу в mydomain.com:8080 / test, я получаю ERR_SSL_PROTOCOL_ERROR . Я не совсем уверен, как это исправить.

Комментарии:

1. «Нет возможности для Node.js приложение «вы уверены, что оно поддерживается?

2. @Phix В соответствии с features.cpanel.net/topic/nodejs-hosting поддержка Node.js был добавлен в версии 80, и я использую версию 88

Ответ №1:

Порт 443 — это стандартный TCP-порт, который используется для веб-сайта по умолчанию, попробуйте изменить на server.listen(process.env.PORT || 80, () => { console.log("Hosting!") }); или server.listen(443, 'shared ip', () => { console.log("Hosting!") });

Комментарии:

1. При использовании этих портов я продолжаю получать Error: listen EADDRINUSE: address already in use