阅读量:4
Linux上部署 JavaScript 应用的实用流程
一 准备环境与上传代码
- 选择 Ubuntu 20.04+ 等主流发行版,先做系统更新:
sudo apt update && sudo apt upgrade -y。 - 安装运行时与工具:
- 方式一(稳定仓库):
sudo apt install -y nodejs npm - 方式二(版本灵活):使用 nvm 安装 Node.js LTS,例如:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
重新加载后:nvm install 18 && nvm use 18
- 方式一(稳定仓库):
- 代码上传:使用 SCP/SFTP 或 Git 将项目拉取到服务器(如
git clone)。
二 部署后端 Node.js 服务
- 安装依赖:进入项目目录,生产环境执行
npm install --production;如有构建步骤(如 Webpack/Babel),先运行npm run build。 - 配置环境变量:准备 .env 文件(数据库连接、密钥、端口等),并在代码中用 dotenv 加载;也可通过 PM2 传入环境:
pm2 start app.js --env production --env-file .env.production。 - 启动与守护:使用 PM2 管理进程,
pm2 start app.js --name "api"(或pm2 start npm --name "api" -- start);设置开机自启:pm2 startup,按提示执行生成命令;常用运维:pm2 list/restart/stop/logs/monit。 - 运行端口:确保应用监听 0.0.0.0(而非仅 127.0.0.1),端口如 3000。
三 部署前端静态资源与 Nginx 反向代理
- 构建前端:在本地执行
npm run build,生成 build/ 或 dist/ 目录。 - 上传静态文件:将构建产物放到服务器目录(如 /var/www/myapp),设置权限:
sudo chown -R www-data:www-data /var/www/myapp && sudo chmod -R 755 /var/www/myapp。 - 配置 Nginx:编辑站点配置(如 /etc/nginx/sites-available/default),同时支持静态站点与 API 反向代理:
- 静态站点:
root /var/www/myapp; index index.html; try_files $uri $uri/ =404; - API 代理:
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)。
四 网络与安全配置
- 防火墙放行:开放 22/80/443 端口(UFW 示例:
sudo ufw allow 22,80,443/tcp;或sudo ufw allow 'Nginx Full')。 - HTTPS 与证书:使用 Certbot 为域名申请 Let’s Encrypt 证书并自动配置 Nginx:
sudo apt install certbot python3-certbot-nginx,然后sudo certbot --nginx -d yourdomain.com。 - 资源与内核参数:提升文件描述符限制(示例:
sudo ulimit -n 65536),生产环境设置NODE_ENV=production。
五 全栈与容器化简要方案
- 全栈分离部署:前端静态文件由 Nginx 托管;后端 Node.js 用 PM2 守护;Nginx 将 /api 反向代理到后端端口(如 3000);数据库可用托管服务(如 MongoDB Atlas),注意安全组与连接字符串配置。
- Docker 化(可选):
- Dockerfile 示例:
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。
- Dockerfile 示例:
以上就是关于“Linux上JS如何部署应用”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm