部署 Next.js 应用详细指南:在 Linux 服务器上使用 Nginx、PM2、Certbot 和 Git

Next.js 是一个流行的 React 框架,用于构建快速和用户友好的网页应用。部署 Next.js 应用需要配置 Web 服务器、进程管理工具以及 SSL 证书。本文将详细介绍如何在 Linux 服务器上使用 Nginx、PM2、Certbot 和 Git 来部署 Next.js 应用。

准备工作

首先,确保服务器上已经安装了 Node.js 和 npm(Node 包管理器),可以通过以下命令进行安装:

sudo apt update
sudo apt install nodejs npm

检查 Node.js 和 npm 是否安装成功:

node -v
npm -v

安装 PM2

PM2 是一个强大的进程管理工具,可以轻松管理 Node.js 应用程序。

sudo npm install pm2 -g

克隆 Next.js 应用

接下来,我们使用 Git 克隆我们的 Next.js 应用程序。请替换以下 URL 为你的应用仓库地址:

git clone https://github.com/your-repo/your-nextjs-app.git
cd your-nextjs-app

安装依赖:

npm install

构建应用

在生产环境中,我们需要构建 Next.js 应用:

npm run build

启动应用

使用 PM2 启动 Next.js 应用。我们可以直接运行 Next.js 的服务器:

pm2 start npm --name "next-app" -- run start

要确保 PM2 在系统重启后自动启动应用:

pm2 startup
pm2 save

安装 Nginx

Nginx 是一个高性能的 HTTP 和反向代理服务器,可以帮助我们处理请求并为 Next.js 提供服务。

sudo apt install nginx

然后启动并启用 Nginx:

sudo systemctl start nginx
sudo systemctl enable nginx

配置 Nginx

在 Nginx 中配置反向代理,将请求转发到运行 Next.js 应用的端口(默认是 3000)。

编辑 Nginx 配置文件:

sudo nano /etc/nginx/sites-available/next-app

加入以下内容,记得替换 your_domain.com 为你的域名:

server {
    listen 80;
    server_name your_domain.com www.your_domain.com;

    location / {
        proxy_pass http://localhost:3000; # Next.js 默认运行在 3000 端口
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

启用配置并重启 Nginx:

sudo ln -s /etc/nginx/sites-available/next-app /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置是否正确
sudo systemctl restart nginx

安装 Certbot 和配置 HTTPS

为了保护网站,我们需要为其配置 SSL 证书。Certbot 是一个轻量级的工具,可以帮助我们自动配置 SSL。

安装 Certbot:

sudo apt install certbot python3-certbot-nginx

使用 Certbot 获取证书:

sudo certbot --nginx -d your_domain.com -d www.your_domain.com

按照提示完成操作。Certbot 会自动为你配置好 Nginx。

自动续期证书

Certbot 提供了自动续期的功能,我们可以通过添加定时任务来确保证书的自动续期。

sudo crontab -e

添加以下命令:

0 0 * * * /usr/bin/certbot renew --quiet

结束语

至此,您已经成功地在 Linux 服务器上通过 Nginx、PM2、Certbot 和 Git 部署了一个 Next.js 应用。您可以访问 http://your_domain.comhttps://your_domain.com 来查看您的应用。确保定期检查应用的运行状态,确保一切正常。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部