如何在 Ubuntu VPS 上的生产环境中托管 Next.js 应用程序
第1步:安装必要的软件包
更新APT:
apt update
安装 Nginx:
apt install nginx -y
设置 Node.js 21.x 存储库:
curl -fsSL https://deb.nodesource.com/setup_21.x | sudo -E bash -
安装 Node.js:
sudo apt-get install -y nodejs
全局安装 PM2:
npm install -g pm2
第 2 步:设置 Next.js 应用程序
npm install
npm run build
npm run start
步骤 3:配置 NGINX
创建此目录用于存储访问和错误日志
mkdir -p /opt/nextjs/logs/
为 Next.js 应用程序创建一个新的 NGINX 配置文件。打开文本编辑器并粘贴以下配置:
# /etc/nginx/sites-available/nextjs-example.willandskill.eu
server {
server_name getmeachai.com;
access_log /opt/nextjs/logs/access.log;
error_log /opt/nextjs/logs/error.log error;
location /_next/ {
alias /home/getmeachai/.next/;
expires 30d;
access_log on;
}
location / {
proxy_pass http://localhost: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;
}
}
步骤4:配置PM2
// ecosystem.config.js
module.exports = {
apps: [
{
name: 'my-nextjs-app',
script: 'node_modules/.bin/next',
args: 'start',
cwd: '/home/getmeachai',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '1G',
env: {
NODE_ENV: 'production',
PORT: 3000,
GITHUB_ID: "99aae2c73fc53d196807",
GITHUB_SECRET: "55c88cefb1ec80c6b1697811f6ff1e287d554249",
NEXT_PUBLIC_URL: "http://getmeachai.com",
NEXTAUTH_URL: "http://getmeachai.com",
NEXTAUTH_SECRET: "sdf",
MONGO_URI: "mongodb://localhost:27017/chai",
},
env_production: {
NODE_ENV: 'production'
}
}
]
};
第5步:启动PM2
pm2 start ecosystem.config.js
[可选] 使用 Certbot 进行 HTTPS
使用 HTTPS 保护 Next.js 应用程序对于保护敏感数据和确保用户信任至关重要。 Certbot 是一种广泛使用的工具,用于从 Let's Encrypt 证书颁发机构获取和管理 SSL/TLS 证书。请按照以下步骤使用 Certbot 为 Next.js 应用程序设置 HTTPS:
第 1 步:安装 Certbot
sudo apt update
sudo apt install python3-certbot-nginx
第2步:获取SSL证书
sudo certbot --nginx -d getmeachai.com
按照提示提供续订提醒的电子邮件地址并同意服务条款。 Certbot 将处理 NGINX 的证书颁发和配置。
步骤 3:验证 HTTPS 配置
sudo nginx -t
如果测试成功,请重新加载 NGINX 以应用更改:
sudo systemctl reload nginx
第 4 步:自动更新证书
sudo systemctl enable certbot.timer
此命令可确保 Certbot 在证书即将过期时自动更新您的证书。
第 5 步:验证续订
sudo certbot renew --dry-run
如果试运行完成且没有错误,则一切就绪。 Certbot 将在必要时自动处理证书续订。
第 6 步:测试 HTTPS 连接
最后,通过 HTTPS 测试您的 Next.js 应用程序,以确保一切正常工作。您可以通过在 Web 浏览器中导航到您的域并验证连接是否安全来执行此操作。
通过执行以下步骤,您可以使用 Certbot 通过 HTTPS 保护您的 Next.js 应用程序,从而增强用户的安全性和信任度。
v2ray节点购买
评论