首页主机资讯ubuntu下如何部署js应用

ubuntu下如何部署js应用

时间2025-10-21 18:04:03发布访客分类主机资讯浏览595
导读:1. 准备工作:更新系统与安装基础工具 首先更新Ubuntu系统包列表,确保后续安装的软件包是最新版本: sudo apt update && sudo apt upgrade -y 安装常用工具(如git用于代码托管库克...

1. 准备工作:更新系统与安装基础工具
首先更新Ubuntu系统包列表,确保后续安装的软件包是最新版本:

sudo apt update &
    &
     sudo apt upgrade -y

安装常用工具(如git用于代码托管库克隆、build-essential用于编译原生模块):

sudo apt install -y git build-essential

2. 安装Node.js与npm
Node.js是JS应用的运行环境,npm用于管理项目依赖。推荐通过NodeSource PPA安装稳定版本(避免默认仓库版本过旧):

# 导入NodeSource仓库密钥并添加仓库
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
# 安装Node.js(包含npm)
sudo apt install -y nodejs
# 验证安装
node -v  # 输出版本号(如v18.x.x)
npm -v   # 输出版本号(如9.x.x)

若需灵活管理多版本Node.js,可使用nvm(Node Version Manager):

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 18  # 安装指定版本
nvm use 18      # 切换版本

3. 上传与配置项目代码
将本地JS应用上传至服务器(以my-js-app为例):

  • 使用scp(命令行)
    scp -r /local/path/to/my-js-app user@your_server_ip:/remote/path/to/deploy
    
  • 使用Git(推荐)
    cd /remote/path/to/deploy
    git clone <
        your-repo-url>
         .  # 克隆仓库到当前目录
    

进入项目目录,安装依赖(生产环境建议添加--production参数,仅安装必需依赖):

cd /remote/path/to/deploy/my-js-app
npm install --production

若项目需要环境变量(如数据库连接字符串、API密钥),在项目根目录创建.env文件:

PORT=3000
NODE_ENV=production
DB_HOST=mongodb://localhost:27017/myapp

并安装dotenv包(用于加载.env文件):

npm install dotenv --save

在应用入口文件(如app.js)顶部添加:

require('dotenv').config();

4. 启动应用:使用PM2进行进程管理
直接使用node app.js启动应用会在终端关闭时终止,PM2是生产环境的推荐工具(支持后台运行、自动重启、日志管理)。
安装PM2(全局模式):

sudo npm install -g pm2

启动应用(以app.js为例,自定义名称为my-js-app):

pm2 start app.js --name "my-js-app"

常用PM2命令:

pm2 list          # 查看运行中的应用列表
pm2 status        # 查看指定应用状态
pm2 logs          # 查看应用日志(实时输出)
pm2 restart my-js-app  # 重启应用
pm2 stop my-js-app     # 停止应用

设置PM2开机自启动(避免服务器重启后应用停止):

pm2 startup

按照终端提示运行生成的命令(如sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u your-user --hp /home/your-user)。

5. 配置Nginx反向代理(可选但推荐)
Nginx可作为反向代理,将外部HTTP/HTTPS请求转发至Node.js应用(默认运行在3000端口),同时提供静态文件服务、SSL加密等功能。
安装Nginx:

sudo apt install -y nginx

配置Nginx站点:

sudo nano /etc/nginx/sites-available/my-js-app

添加以下内容(替换your_domain.com为你的域名或服务器IP):

server {
    
    listen 80;
    
    server_name your_domain.com;


    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;

    }


    # 可选:静态文件缓存(提升性能)
    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    
        expires 30d;
    
        add_header Cache-Control "public";

    }

}
    

启用配置并重启Nginx:

sudo ln -s /etc/nginx/sites-available/my-js-app /etc/nginx/sites-enabled/
sudo nginx -t  # 测试配置语法(无错误则继续)
sudo systemctl restart nginx

开放防火墙端口(若启用ufw):

sudo ufw allow 'Nginx Full'  # 允许HTTP(80)和HTTPS(443)
sudo ufw enable              # 启用防火墙
```。


**6. 配置SSL证书(可选但强烈推荐)**  
使用Let's Encrypt免费获取SSL证书,实现HTTPS加密(提升安全性与SEO排名)。  
安装Certbot(Nginx插件):  
```bash
sudo apt install -y certbot python3-certbot-nginx

获取并自动配置证书:

sudo certbot --nginx -d your_domain.com -d www.your_domain.com

按照提示完成配置(Certbot会自动修改Nginx配置,添加SSL监听端口与重定向规则)。
设置证书自动续期(Let’s Encrypt证书有效期为90天):

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

Certbot会自动添加cron任务,无需手动干预。

7. 监控与维护

  • 查看应用状态pm2 list
  • 查看实时日志pm2 logs my-js-app
  • 监控资源使用pm2 monit(显示CPU、内存占用)
  • 更新依赖:定期运行npm outdated查看过时依赖,使用npm update更新(生产环境需测试后再更新)
  • 备份项目:定期备份项目文件(如/remote/path/to/deploy)与数据库(如MongoDB的mongodump命令)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu下如何部署js应用
本文地址: https://pptw.com/jishu/731373.html
Kubernetes在Ubuntu上的故障排查有哪些方法 ubuntu下js版本如何升级

游客 回复需填写必要信息