Estoy intentando implementar una aplicación NextJS en mi servidor de alojamiento compartido usando la sección de la aplicación Node.JS de configuración de cPanel , pero cuando comienzo la compilación, a pesar de estar ready on http://localhost:3000 , el sitio arroja un error 503 .
Cargué la carpeta de compilación junto con next.config.js , package-lock.json , package.json y server.js en la raíz de la aplicación, y esta es mi estructura de archivos actual:
next_main build (.next folder) node_modules next.config.js package-lock.json package.json server.js Este es mi archivo server.js (exactamente el mismo que proporcionó Next en sus documentos de servidor personalizados):
const { createServer } = require("http"); const { parse } = require("url"); const next = require("next"); const dev = process.env.NODE_ENV !== "production"; const hostname = "localhost"; const port = 3000; const app = next({ dev, hostname, port }); const handle = app.getRequestHandler(); app.prepare().then(() => { createServer(async (request, response) => { try{ const parsedURL = parse(request.url, true); const { pathname, query } = parsedURL; switch(pathname){ case "/a": case "/b": await app.render(request, response, pathname, query); break; default: await handle(request, response, parsedURL); } } catch(error){ console.error("Error occurred.", request.url, error); response.statusCode = 500; response.end("Internal server error."); } }).listen(port, error => { if(error) throw error; console.log(`> Ready on http://${hostname}:${port}`); }); }).catch(error => { if(error) throw error; }); Failed to load next.config.js también se generó en mi archivo stderr, a pesar de que se proporcionó next.config.js .
He adjuntado la configuración actual que he aplicado en mi cPanel .
Tenga en cuenta que no tengo acceso de raíz a la terminal y estoy restringido al entorno next_main cuando ejecuto cualquier script NPM.
Su compilación se creó en la carpeta .next, pero debe iniciarse con npm start y su dominio debe apuntar a ese puerto 3000 (o al puerto en el que lo esté ejecutando).
Asegúrese de no apuntar su dominio al directorio .next sino al puerto en el que se está ejecutando y asegúrese de que el servidor también esté mirando.