Node.js 将Next.js部署到共享主机
我需要将Next.js应用程序部署到支持Node.js的共享主机提供商。官方的Next.js文档说您(仅?)需要在服务器上运行Node.js 将Next.js部署到共享主机,node.js,deployment,next.js,shared-hosting,Node.js,Deployment,Next.js,Shared Hosting,我需要将Next.js应用程序部署到支持Node.js的共享主机提供商。官方的Next.js文档说您(仅?)需要在服务器上运行Next start(我想是通过SSH) 我需要只部署build版本,还是需要通过ssh在服务器上运行build命令 一旦构建就绪,运行npm start真的是我唯一需要做的事情吗?我有点担心服务器会因为任何原因而停止,站点会关闭。我在谷歌上搜索了不少,发现有人提到使用pm2(参考freeCodeCamp上的文章),但不确定Next.js是否会在生产时自动重启服务器 在服
Next start
(我想是通过SSH)
build
版本,还是需要通过ssh在服务器上运行build命令npm start
真的是我唯一需要做的事情吗?我有点担心服务器会因为任何原因而停止,站点会关闭。我在谷歌上搜索了不少,发现有人提到使用pm2(参考freeCodeCamp上的文章),但不确定Next.js是否会在生产时自动重启服务器在服务器上,您可以这样做,当然您应该让pm2(npm install-g pm2)和config for nginx代理传递下一台服务器将运行的端口,例如6060(添加到nginx.conf/server/location这一行:proxy\u passhttp://localhost:6060)然后:
或者你可以简单地移动到vps,它的价格现在相当便宜,你可以用自己的服务器做很多事情(Google Compute Engine提供免费的东西-几乎免费一年)你可以在这里找到非常有用的讨论: 我发现缺少使用cPanel部署到共享主机的信息,因此经过多次尝试和错误后,我希望这将有助于那些使用Nextjs部署到定制服务器的人,正如Vercel文档中提到的那样,在本例中,部署到共享主机
npm run build
的经验,由于共享托管服务器中提供的有限虚拟内存,有时会导致生成错误
。
因此,解决方法很简单,在本地计算机上执行构建,然后将在计算机上创建的.next
文件夹复制到宿主服务器上项目的根文件夹中
package.json
、'server.js'和复制到项目的根文件夹,就可以了。(请参阅下面的server.js内容)
服务器启动文件
(您可以将其命名为server.js或app.js或index.js或任何您想要的名称,只要它与您在cPanel中对节点应用的定义一致)。
以下是服务器启动程序文件所需的最低代码:
const{createServer}=require(“http”);
const{parse}=require(“url”);
const next=要求(“下一步”);
const dev=process.env.NODE_env!==“生产”;
常量端口=!戴夫?进程环境端口:3000;
//创建Express Next应用程序
const app=next({dev});
const handle=app.getRequestHandler();
应用程序
.准备
.然后(()=>{
createServer((请求、恢复)=>{
const parsedUrl=parse(req.url,true);
const{pathname,query}=parsedUrl;
句柄(req、res、parsedUrl);
log(“路径名”,路径名);
}).侦听(端口,(错误)=>{
如果(错误)抛出错误;
console.log(`>已准备就绪http://localhost:${port}`);
});
})
.catch((ex)=>{
控制台错误(例如堆栈);
过程。退出(1);
});
U需要上传和node\U模块
或在那里运行npm i
,但通常会出现错误,就像您构建itI一样。我尝试了这一点,但它是在开发模式下运行的。请问,您知道如何运行构建版本吗?