Nuxt线上Nginx部署教程

1、项目打包

  • 编辑自动打包脚本,先拉取最新代码,进行打包
git pull
yarn build
  • 将.nuxt、static、package.json、 nuxt.config.js四个文件文件放入到服务器对应的目录
cp -r .nuxt/ /usr/share/nginx/html/wenknow/
cp -r  static/ /usr/share/nginx/html/wenknow/
cp package.json /usr/share/nginx/html/wenknow/
cp nuxt.config.js /usr/share/nginx/html/wenknow/
  • 在服务器对应的目录安装项目依赖
yarn
  • 启动
yarn start
  • 下面是自动打包脚本
#!/bin/bash
crtdir=`dirname $0`
buildPath= /usr/share/nginx/html/wenknow/
echo $crtdir
echo "同步远程仓库"
cd $crtdir
git pull

echo "重新打包site"
yarn build

cp -r .nuxt/ $buildPath
cp -r  static/ $buildPath
cp package.json $buildPath
cp nuxt.config.js $buildPath

echo "重新打包wenknow"
yarn

2、配置Nginx

  • 使用 nginx 作为反向代理
map $sent_http_content_type $expires {
    "text/html"                 epoch;
    "text/html; charset=utf-8"  epoch;
    default                     off;
}

server {
    listen          80;             # the port nginx is listening on
    server_name     your-domain;    # setup your domain here

    gzip            on;
    gzip_types      text/plain application/xml text/css application/javascript;
    gzip_min_length 1000;

    location / {
        expires $expires;

        proxy_redirect                      off;
        proxy_set_header Host               $host;
        proxy_set_header X-Real-IP          $remote_addr;
        proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto  $scheme;
        proxy_read_timeout          1m;
        proxy_connect_timeout       1m;
        proxy_pass                          http://127.0.0.1:3000; # set the address of the Node.js instance here
    }
}

3、设置pm2守护进程

  • PM2 是具有内置负载均衡器的 Node.js 应用程序的生产流程管理器。它允许您使应用程序永远保持活动状态,在不停机的情况下重新加载它们,并促进常见的系统管理任务

  • 安装pm2

# yarn pm2 install
$ sudo yarn global add pm2 --prefix /usr/local
  • 启动服务
pm2 --name=你的服务名 start yarn -- run start
  • pm2常用命令
pm2 list                             查看所有进程
pm2 show 0                           查看进程详细信息,0为PM2进程id 
pm2 stop all                         停止PM2列表中所有的进程
pm2 stop 0                           停止PM2列表中进程为0的进程
pm2 reload all                       重载PM2列表中所有的进程
pm2 reload 0                         重载PM2列表中进程为0的进程
pm2 delete 0                         删除PM2列表中进程为0的进程
pm2 delete all                       删除PM2列表中所有的进程
评论