Ubuntu上JavaScript(Node.js)项目部署指南
JavaScript在Ubuntu上的部署通常指Node.js应用的部署(浏览器JS无需服务器环境)。首先需要安装Node.js运行时和npm(包管理器)。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
source ~/.bashrc # 加载nvm环境
nvm install --lts # 安装最新的LTS版本(稳定)
nvm use --lts # 切换到该版本
node -v # 查看Node.js版本(如v18.x.x)
npm -v # 查看npm版本(如9.x.x)
将本地JavaScript项目传输到Ubuntu服务器,常用方式:
scp -r ./local-project user@your_server_ip:/path/to/remote/directory
cd /path/to/project
git clone https://github.com/your-repo/project.git
进入项目目录,根据package.json文件安装所有依赖:
cd /path/to/project
npm install # 安装dependencies和devDependencies(生产环境建议用--production)
若项目有构建步骤(如Webpack、Babel),需运行对应命令:
npm run build # 执行package.json中"build"脚本(如打包前端资源)
node app.js # 替换为你的入口文件(如server.js、index.js)
此方式会在前台运行,关闭终端后应用停止。sudo npm install -g pm2 # 全局安装PM2
pm2 start app.js --name "my-js-app" # 启动应用并命名
pm2 save # 保存当前进程列表
pm2 startup # 设置开机自启(按提示执行命令)
查看运行状态:pm2 list;查看日志:pm2 logs。Nginx可作为反向代理,处理HTTP请求转发、SSL加密、静态文件服务等。
sudo apt update
sudo apt install nginx
/etc/nginx/sites-available/default),添加以下内容:server {
listen 80;
server_name your_domain.com; # 替换为你的域名或IP
location / {
proxy_pass http://localhost:3000; # 转发到Node.js应用的端口
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 restart nginx
ufw防火墙,运行以下命令开放端口:sudo ufw allow 'Nginx Full' # 允许HTTP(80)和HTTPS(443)
sudo ufw enable # 启用防火墙
certbot:sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your_domain.com # 替换为你的域名
Certbot会自动修改Nginx配置,启用HTTPS并设置自动续期。http://your_domain.com(或IP),应看到应用页面。pm2 list(确保应用运行中)。sudo tail -f /var/log/nginx/error.log(排查问题)。sudo netstat -tulnp | grep 3000),修改app.js中的端口即可。sudo chown -R $USER:$USER /path/to/project)。node_modules和package-lock.json,重新运行npm install。