温馨提示×

ubuntu中js项目怎么部署

小樊
40
2025-11-09 02:01:07
栏目: 编程语言

Ubuntu中JS项目(以Node.js项目为例)部署指南

1. 准备工作:安装Node.js与npm

Node.js是JS项目的运行环境,npm是其包管理工具。推荐使用**nvm(Node Version Manager)**安装,方便版本切换:

# 安装nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
source ~/.bashrc  # 使nvm生效

# 安装最新LTS版本Node.js(如v18)
nvm install --lts
# 验证安装
node -v  # 查看Node.js版本
npm -v   # 查看npm版本

若无需多版本管理,也可用系统包管理器安装:

sudo apt update
sudo apt install nodejs npm

2. 上传项目到服务器

将本地JS项目传输至Ubuntu服务器,常用方法:

  • Git(推荐,便于版本控制):
    本地推送代码至远程仓库(如GitHub),服务器拉取:
    git clone https://github.com/your-username/your-js-project.git
    cd your-js-project
    
  • SCP/SFTP(直接传输文件):
    本地执行:scp -r ./local-project user@server-ip:/path/to/remote/dir

3. 安装项目依赖

进入项目目录,根据package.json安装依赖:

npm install  # 安装所有依赖(生产环境建议加--production减少体积)

若项目有构建步骤(如Webpack、Babel),需运行对应命令:

npm run build  # 执行打包、编译等操作

4. 启动项目:使用PM2进程管理

直接用node app.js启动会在终端关闭时终止进程,推荐用PM2(进程守护工具):

# 全局安装PM2
sudo npm install -g pm2

# 启动项目(根据package.json的scripts配置调整)
pm2 start npm --name "your-app-name" -- start  # 若scripts中有"start": "node app.js"
# 或直接指定入口文件
pm2 start app.js --name "your-app-name"

# 常用命令
pm2 list       # 查看运行中的应用
pm2 logs       # 查看日志
pm2 save       # 保存当前进程列表
pm2 startup    # 设置开机自启(需执行提示的命令)

5. 配置Nginx反向代理(生产环境必备)

Nginx作为Web服务器,可将外部请求转发至Node.js应用(默认运行在3000等端口),提升性能与安全性:

# 安装Nginx
sudo apt install nginx

# 配置反向代理(编辑默认站点或新建配置文件)
sudo nano /etc/nginx/sites-available/your-app  # 新建配置文件更规范

# 添加以下内容(修改server_name为你的域名/IP,proxy_pass为Node.js端口)
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;
    }
}

# 启用配置(删除sites-available中的默认文件,创建软链接至sites-enabled)
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/your-app /etc/nginx/sites-enabled/

# 测试配置并重启Nginx
sudo nginx -t  # 检查语法
sudo systemctl restart nginx

6. 配置防火墙

允许HTTP(80)和HTTPS(443)流量通过,确保外部能访问:

sudo ufw allow 'Nginx Full'  # 允许Nginx全部流量
sudo ufw enable              # 启用防火墙(若未启用)
sudo ufw status              # 查看防火墙状态

7. 可选:配置SSL证书(HTTPS)

使用Let’s Encrypt免费获取SSL证书,提升网站安全性:

# 安装Certbot(Nginx版)
sudo apt install certbot python3-certbot-nginx

# 获取证书并自动配置Nginx
sudo certbot --nginx -d your-domain.com  # 替换为你的域名
# 按提示完成验证,证书会自动安装至/etc/letsencrypt/live/your-domain.com/

证书有效期为90天,需设置自动续期:

sudo certbot renew --dry-run  # 测试续期

注意事项

  • 环境变量:若项目需要敏感配置(如数据库密码),在项目根目录创建.env文件,用dotenv库读取(不要提交至Git)。
  • 端口修改:若Node.js应用端口非3000,需同步修改Nginx配置中的proxy_pass地址。
  • 性能优化:生产环境可开启Nginx缓存、压缩等功能,进一步提升响应速度。

按照上述步骤操作,即可完成Ubuntu环境下JS项目(Node.js)的稳定部署。

0