Linux上部署 JavaScript 应用的实用流程
一 准备环境与上传代码
sudo apt update && sudo apt upgrade -y。sudo apt install -y nodejs npmcurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bashnvm install 18 && nvm use 18git clone <repo>)。二 部署后端 Node.js 服务
npm install --production;如有构建步骤(如 Webpack/Babel),先运行 npm run build。pm2 start app.js --env production --env-file .env.production。pm2 start app.js --name "api"(或 pm2 start npm --name "api" -- start);设置开机自启:pm2 startup,按提示执行生成命令;常用运维:pm2 list/restart/stop/logs/monit。三 部署前端静态资源与 Nginx 反向代理
npm run build,生成 build/ 或 dist/ 目录。sudo chown -R www-data:www-data /var/www/myapp && sudo chmod -R 755 /var/www/myapp。root /var/www/myapp; index index.html; try_files $uri $uri/ =404;location /api { 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; }sudo nginx -t && sudo systemctl reload nginx(或 restart)。四 网络与安全配置
sudo ufw allow 22,80,443/tcp;或 sudo ufw allow 'Nginx Full')。sudo apt install certbot python3-certbot-nginx,然后 sudo certbot --nginx -d yourdomain.com。sudo ulimit -n 65536),生产环境设置 NODE_ENV=production。五 全栈与容器化简要方案
FROM node:18
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node","app.js"]
docker build -t my-node-app . 与 docker run -p 3000:3000 my-node-app。