2

I'm trying to run Next js application on my Digital Ocean Droplet (with OpenLiteSpeed).

I have start.js file with the following content:

const { createServer } = require('http')
const { parse } = require('url')
const next = require('next')

const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()

app.prepare().then(() => {
  createServer((req, res) => {
    const parsedUrl = parse(req.url, true)
    const { pathname, query } = parsedUrl
    handle(req, res, parsedUrl)
  }).listen(80, (err) => {
    if (err) throw err
    console.log('> Ready on http://localhost:80')
  })
})

When I calling this file from console: node start.js, my site successfully running on port 80.

But when I'm trying to add this file as a start up file in App Server Context Definition, site is not running, and my website just cannot be reached.

digital ocean interface 1

But when I'm changing the file to default one (app.js):

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World! From OpenLiteSpeed NodeJS\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://:/`);
});

The website is successfully opening with Hello World.

Listener is successfully setup to port 80: digital ocean interface 2

Grace restart is done. changing ports to 3000 (for example) not helping much: I got same behavior.

What I am doing wrong?

UPDATE: I found temporary solution: node start.js & disown

and then close the Terminal. Please anyone give me drawbacks of this method.

0 Answers0