温馨提示×

Ubuntu服务器JS部署技巧

小樊
49
2025-10-06 03:36:41
栏目: 云计算

Ubuntu服务器JS(Node.js)部署技巧

1. 选择合适的Node.js安装方式

  • 包管理器安装(快速但版本旧):适合简单测试,通过sudo apt install nodejs npm安装,默认版本可能较旧(如Ubuntu 22.04默认安装Node.js 16.x)。
  • NodeSource仓库安装(指定版本):适合需要特定版本(如LTS版)的场景,通过curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -添加仓库,再用sudo apt install nodejs安装,可灵活选择版本。
  • NVM管理(多版本切换):适合需要同时维护多个项目的开发者,通过curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash安装NVM,再用nvm install 18安装指定版本,用nvm use 18切换,支持版本动态调整。

2. 项目依赖与环境配置

  • 上传项目文件:使用scpscp -r local_project user@server_ip:/path/to/remote)或SFTP将本地项目上传至服务器。
  • 安装依赖:进入项目目录,运行npm install根据package.json安装所有依赖(包括生产依赖,避免安装devDependencies可减少资源占用)。
  • 配置环境变量:将敏感信息(如数据库密码、API密钥)存入.env文件(不要提交至Git),或通过export DB_HOST=your_db_host临时设置,确保应用访问安全。

3. 进程管理与持久化

  • 使用PM2守护进程:PM2是Node.js进程管理工具,能保持应用在线、自动重启(如代码变更或服务器重启)。安装sudo npm install -g pm2,启动应用pm2 start app.js --name "my-js-app"app.js为入口文件),常用命令:pm2 list(查看进程)、pm2 logs(查看日志)、pm2 save(保存当前进程列表)、pm2 startup(设置开机自启)。

4. 反向代理配置(Nginx)

  • 安装Nginxsudo apt install nginx,用于处理HTTP请求转发、负载均衡及SSL终止。
  • 配置反向代理:编辑/etc/nginx/sites-available/your_project(如default),添加以下内容(将your_domain.com替换为域名或IP,3000替换为Node.js应用端口):
    server {
        listen 80;
        server_name your_domain.com;
        location / {
            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 ln -s /etc/nginx/sites-available/your_project /etc/nginx/sites-enabled/,测试配置sudo nginx -t,重启Nginxsudo systemctl restart nginx

5. 安全加固措施

  • 设置防火墙:使用ufw允许HTTP(80)和HTTPS(443)流量:sudo ufw allow 'Nginx Full',启用防火墙sudo ufw enable,检查状态sudo ufw status
  • 配置SSL证书:使用Let’s Encrypt免费获取证书,安装Certbot:sudo apt install certbot python3-certbot-nginx,运行sudo certbot --nginx -d your_domain.com,自动配置Nginx HTTPS重定向(默认监听443端口)。
  • 定期更新依赖:运行npm outdated查看过时依赖,用npm update更新到最新版本,修复安全漏洞。

6. 部署优化技巧

  • 区分环境配置:使用dotenv库加载.env文件中的环境变量,避免硬编码敏感信息(如require('dotenv').config())。
  • 静态文件托管:将React/Vue等前端项目的dist目录静态文件交由Nginx直接托管(避免Node.js处理静态请求的性能损耗),Nginx配置中添加:
    location /static/ {
        alias /path/to/your_project/dist/;
    }
    
  • 日志管理:用PM2的pm2 logs查看实时日志,或配置Nginx日志轮转(/etc/logrotate.d/nginx),避免日志文件过大占用磁盘空间。

0