我在centOS服务器中开发nextJS应用程序时遇到问题

3zwjbxry  于 2023-03-02  发布在  其他
关注(0)|答案(1)|浏览(225)

如何将nextJS应用程序部署到centos ftp服务器。我将nextJS应用程序上传到public_html并运行命令yarn dev或开始使用putty。它显示localhost:3000,但我无法访问它。我尝试使用nodejs deploy进行部署,但也无法访问它。我还在.next和根目录中添加了index.js文件。
index.js

const http = 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(() => {
  http
    .createServer((req, res) => {
      const parsedUrl = parse(req.url, true);
      const { pathname, query } = parsedUrl;
      handle(req, res, parsedUrl);
    })
    .listen(3000, (err) => {
      if (err) throw err;
      console.log('> Ready on http://localhost:3000');
    });
});

我的主机名renocommerce.com.所以我想通过renocommerce.com/[my-app-name]访问nextJS应用程序。但无论如何,如果可能的话,可以有其他方式。

lymgl2op

lymgl2op1#

您需要在您的Web服务器上配置反向代理,此配置可以告诉您的Web服务器如何处理renocommerce.com/[ my-app-name]的请求,并将其转发到正在运行的nodejs服务器,该服务器以startdev命令开始。
Selfhosting next.js有一些局限性。如果你依赖于以下任何一个函数,你很可能运气不好,应该考虑其他托管应用的方式:
局限性:

  • 图像优化(默认加载程序)
  • 国际化路由
  • API途径
  • 重写
  • 重定向
  • 标题
  • 中间件
  • 增量静态再生
  • 回退:真
  • 获取服务器侧边属性

如果您的应用可以完全静态站点生成,您可以简单地将构建输出放在[my-app-name]文件夹中,并通过端口80/443提供服务。

如果你没有在自己的服务器上部署的经验,我建议你使用vercel.com在这里你可以连接你的域/子域和你的git仓库,它会自动构建和服务你的项目,这是部署next.js最简单的解决方案。
您无法访问运行在您服务器上的本地主机站点的原因是,putty只打开一个到您服务器的ssh连接。所有PC的浏览器通信都不会到达您服务器的本地主机。为此,您需要直接通过您的服务器重定向您的浏览器通信。

相关问题