如何将next.js应用部署到Cyberpanel

wz8daaqr  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(78)

我正在尝试在Cyberpanel中部署完整的Next JS应用程序
所以我试图部署下一个js应用程序到CyberPanel,在遵循他们对此的唯一文档(https://community.cyberpanel.net/t/how-to-host-nextjs-app-on-cyberpanel/44403/2)后,它不起作用,webiste仍然向我显示404页面,而我正在运行应用程序(使用pm2)。我唯一没有做的是在默认端口(3000)上运行它。

ha5z0ras

ha5z0ras1#

我试过很多方法,这是唯一对我有效的方法。

1.创建处理程序

  • 转到OpenLiteSpeed管理面板(通常位于http://<IP_ADDRESS>:7080)。
  • 进入**“服务器配置”->“外部应用”**。
  • 添加新应用程序(右侧的+号)。
  • 选择类型“Web服务器”,然后单击下一步(右侧的右箭头)。
  • 给予处理程序的自定义名称,例如**“nextjs”**或您的站点名称。
  • 将地址设置为“http://127.0.0.1:<CUSTOM_PORT>“,我个人使用端口11300及以上,以避免使用系统已经使用的端口。
  • 将其他所需值设置为100,然后单击保存(右侧的保存图标)。
  • 重启LSWS(右上方的绿色刷新按钮)。

2.请求重定向

(从“http://127.0.0.1:<CUSTOM_PORT>“到域名/子域名)

  • 进入CyberPanel->“Websites”->“List Websites”,然后点击域名右侧的管理
  • 选择vHost Conf并将其粘贴到末尾:
context / {
  type                    proxy
  handler                 <HANDLER_NAME>
  addDefaultCharset       off
}

// The <HANDLER_NAME> should be the name that
// we gave to our handler, for example if we named it nextjs:

context / {
  type                    proxy
  handler                 nextjs
  addDefaultCharset       off
}

字符串

  • 点击保存。

3.允许使用端口

我不知道是不是每个人都是这样,但对我来说,只有在我这样做之后,它才起作用。试着不要这样做,如果不起作用,就回来。
默认情况下,不允许使用该端口。
通过SSH访问您的服务器并执行以下命令:

sudo iptables -A INPUT -p tcp --dport <PORT> -j ACCEPT

// If we used the port 11300:

sudo iptables -A INPUT -p tcp --dport 11300 -j ACCEPT

4.启动应用

现在转到SSH并在我们设置的自定义端口上启动应用程序。
(In接下来的JS,你可以将package.json中的start脚本改为next start -p <PORT>,也就是next start -p 11300,然后用npm start正常运行,也可以直接运行npm start -- -p 11300命令)。
用npm正常运行,测试一切是否正常。
然后你可以用pm2和pm2 start "npm start -- -p 11300"启动它。

**PS:**这适用于任何Nodejs应用程序,而不仅仅是NextJS。

我希望这对你有帮助。

相关问题