ubuntu - 如何在特定端口上运行 Next.js 项目?

标签 ubuntu next.js devops port forever

这里是server.js的内容文件:

const express = require("express");
const path = require("path");
const next = require("next");

const dev = false;
const app = next({ dev });
const handle = app.getRequestHandler();

app
  .prepare()
  .then(() => {
    const server = express();

    // requests to /service-worker.js
    server.get(
      "/service-worker.js",
      express.static(path.join(__dirname, ".next"))
    );

    // all other requests
    server.get("*", (req, res) => {
      return handle(req, res);
    });
    server.listen(3002, (err) => {                            // this
      if (err) throw err;
      console.log("> Ready on http://localhost:3002");        // this
    });
  })
  .catch((ex) => {
    console.error(ex.stack);
    process.exit(1);
  });

正如我所强调的,我正在端口 3002 上运行该项目。但运行后forever start server.js ,仍然http://<ip>:3002无法访问。

此外,当我运行 yarn start 时在项目的根目录上,它说:

Port 3000 is already in use.

enter image description here

为什么它不关心我在 server.js 中指定的端口?

最佳答案

As I've highlighted, I'm running the project on port 3002

这不是您所做的,您只是让服务器监听端口 3002,但是当您运行 yarn start 时,项目将在默认端口 3000 上启动

您可以在 package.json 文件中以这种方式更改它:

"scripts": {
//...
"dev": "next dev -p 3002",
"start": "next start -p 3002",
},

还需要检查端口本身是否在服务器上监听(lsof | grep -i PORT),然后在防火墙上启用访问,使用以下命令在防火墙上启用访问: sudo ufw允许3002/tcp

只要确保 ufw已安装并正确设置。

关于ubuntu - 如何在特定端口上运行 Next.js 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75441007/

相关文章:

java.lang.NoClassDefFoundError(Java、Eclipse、Fuse-JNA、Ubuntu)

reactjs - fsevents@2.3.2 安装问题的平台不受支持

node.js - MongoDB Mongoose 错误: Cannot call `collection.aggregate()` before initial connection is complete

docker - Nextjs v.10 getstaticprops "revalidate"停止在 docker 容器上工作

elasticsearch - 如何通过 HAproxy 访问 Kibana 仪表板

powershell - Azure 管道错误 'Windows PowerShell is in NonInteractive mode.'

linux - 错误号 13 - 远程访问 svn 且 dav_svn 失败

android - ubuntu 中的 adt 包不起作用

GitVersion.yml文件理解

Python:从交通摄像头获取 10 分钟视频