Nuxt4 部署到宝塔面板完整踩坑记录(Nginx + PM2 + SSL)
记录将 Nuxt4 SSR 项目部署到阿里云、宝塔面板管理 Nginx、PM2 守护进程、Let's Encrypt 免费 SSL 证书的完整过程,包含所有踩坑和解决方案。
前言
最近把自己的个人网站从本地开发部署到了阿里云服务器上,用宝塔面板管理 Nginx,PM2 守护 Node 进程。整个过程踩了不少坑,在这里完整记录下来。
坑1:sudo 找不到 npm/pm2
nvm 安装的 Node.js 默认只在当前用户的 PATH 里,sudo 执行时会丢失环境变量。
解决方案:将 nvm 路径写入 ~/.bashrc:
echo 'export PATH="/root/.nvm/versions/node/v22.13.1/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
坑2:Nginx 代理导致 /api/proxy/ 404
Nuxt Nitro 的 routeRules 里配置了 /api/proxy/ 内部代理,但 Nginx 把所有 /api/ 请求都转发到后端,绕过了 Nuxt 层。
解决方案:Nginx 只代理 /api/v1/,其余交给 Nuxt:
location /api/v1/ {
proxy_pass http://127.0.0.1:3001/api/v1/;
}
location / {
proxy_pass http://127.0.0.1:3000;
}
坑3:宝塔面板 SSL 验证失败
宝塔的文件验证方式会被 / 的代理规则拦截,导致验证失败。改用 certbot 命令行申请:
apt install certbot -y
certbot certonly --webroot -w /www/wwwroot/seodiy.cn \
-d seodiy.cn -d www.seodiy.cn
总结
关注公众号「杜兴华写代码」,回复「部署」获取完整配置文件。