#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