温馨提示×

ubuntu上js代码如何部署

小樊
53
2025-10-04 03:12:32
栏目: 编程语言

Ubuntu上JavaScript(Node.js)项目部署指南

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

JavaScript在Ubuntu上的部署通常指Node.js应用的部署(浏览器JS无需服务器环境)。首先需要安装Node.js运行时和npm(包管理器)。

  • 推荐方法:使用nvm(Node Version Manager)(灵活管理多版本)
    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)
    

2. 上传项目文件到服务器

将本地JavaScript项目传输到Ubuntu服务器,常用方式:

  • SCP(命令行)
    scp -r ./local-project user@your_server_ip:/path/to/remote/directory
    
  • SFTP(图形工具):使用FileZilla、WinSCP等工具拖拽上传。
  • Git(版本控制)
    cd /path/to/project
    git clone https://github.com/your-repo/project.git
    

3. 安装项目依赖

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

cd /path/to/project
npm install  # 安装dependencies和devDependencies(生产环境建议用--production)

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

npm run build  # 执行package.json中"build"脚本(如打包前端资源)

4. 运行JavaScript应用

  • 直接运行(开发测试)
    node app.js  # 替换为你的入口文件(如server.js、index.js)
    
    此方式会在前台运行,关闭终端后应用停止。
  • 使用PM2(生产环境推荐)
    PM2是Node.js进程管理器,支持后台运行、自动重启、日志管理等功能。
    sudo npm install -g pm2  # 全局安装PM2
    pm2 start app.js --name "my-js-app"  # 启动应用并命名
    pm2 save                 # 保存当前进程列表
    pm2 startup              # 设置开机自启(按提示执行命令)
    
    查看运行状态:pm2 list;查看日志:pm2 logs

5. 配置Nginx反向代理(可选但推荐)

Nginx可作为反向代理,处理HTTP请求转发、SSL加密、静态文件服务等。

  • 安装Nginx
    sudo apt update
    sudo apt install nginx
    
  • 配置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;
        }
    }
    
  • 重启Nginx
    sudo nginx -t  # 测试配置语法
    sudo systemctl restart nginx
    

6. 设置防火墙与SSL(安全加固)

  • 允许HTTP/HTTPS流量
    Ubuntu默认使用ufw防火墙,运行以下命令开放端口:
    sudo ufw allow 'Nginx Full'  # 允许HTTP(80)和HTTPS(443)
    sudo ufw enable              # 启用防火墙
    
  • 配置SSL证书(免费)
    使用Let’s Encrypt获取SSL证书,自动化工具certbot
    sudo apt install certbot python3-certbot-nginx
    sudo certbot --nginx -d your_domain.com  # 替换为你的域名
    
    Certbot会自动修改Nginx配置,启用HTTPS并设置自动续期。

7. 验证部署

  • 在浏览器访问http://your_domain.com(或IP),应看到应用页面。
  • 检查PM2进程状态:pm2 list(确保应用运行中)。
  • 查看Nginx日志:sudo tail -f /var/log/nginx/error.log(排查问题)。

常见问题排查

  • 端口冲突:若应用无法启动,检查端口是否被占用(sudo netstat -tulnp | grep 3000),修改app.js中的端口即可。
  • 权限问题:确保项目目录有读取权限(sudo chown -R $USER:$USER /path/to/project)。
  • 依赖错误:删除node_modulespackage-lock.json,重新运行npm install

0