Setting up a Next.js application on DirectAdmin

view nginx error log of that's domain. you will found issued info in their.
 
when you running with nginx unit, you must create app with pure standalone wkthout running on port or unix socket .... something like this
Code:
#!/usr/bin/env node
var unit = require('unit-http');
var server = unit.createServer(function(request, response) {
    response.writeHead(200, {"Content-Type": "text/html"});
    response.end("Read more at unit.nginx.org");

});
server.listen();
 
when you running with nginx unit, you must create app with pure standalone wkthout running on port or unix socket .... something like this
Code:
#!/usr/bin/env node
var unit = require('unit-http');
var server = unit.createServer(function(request, response) {
    response.writeHead(200, {"Content-Type": "text/html"});
    response.end("Read more at unit.nginx.org");

});
server.listen();
i use this code :
Code:
const { createServer } = require('http')
const { parse } = require('url')
const next = require('next')

const dev = process.env.NODE_ENV !== 'production'
const hostname = 'localhost'
const port = process.env.port || 3000
// when using middleware `hostname` and `port` must be provided below
const app = next({ dev, hostname, port })
const handle = app.getRequestHandler()

app.prepare().then(() => {
    createServer(async (req, res) => {
        try {
            // Be sure to pass `true` as the second argument to `url.parse`.
            // This tells it to parse the query portion of the URL.
            const parsedUrl = parse(req.url, true)
            const { pathname, query } = parsedUrl

            if (pathname === '/a') {
                await app.render(req, res, '/a', query)
            } else if (pathname === '/b') {
                await app.render(req, res, '/b', query)
            } else {
                await handle(req, res, parsedUrl)
            }
        } catch (err) {
            console.error('Error occurred handling', req.url, err)
            res.statusCode = 500
            res.end('internal server error')
        }
    })
        .once('error', (err) => {
            console.error(err)
            process.exit(1)
        })
        .listen(port, () => {
            console.log(`> Ready on http://${hostname}:${port}`)
        })
})

Refer to: Custom Server

If I have missed something, please help me
 
change "require('http')" to "require('unit-http')"

and set "port=null"
maybe it should work. otherwise if I have time to playing, I will test for you.

I never use next.js, only pure standalone http.
 
Back
Top