ubuntu16.04 TLS nuxt + nginx 部署服务端渲染项目

一、安装node、npm

# Ubuntu 16.04 TLS,执行以下命令:
sudo apt-get install nodejs
sudo apt install nodejs-legacy
sudo apt install npm
# Ubuntu 18.04 TLS,执行以下命令:
sudo apt-get install nodejs
sudo apt install libssl1.0-dev nodejs-dev node-gyp npm

二、更新npm的包镜像

sudo npm config set registry https://registry.npm.taobao.org
sudo npm config list

三、安装n管理器(用于管理nodejs版本)

# 安装n模块
sudo npm install -g n
# 升级node.js到最新的稳定版本 
sudo n stable

重启一下终端,node -v看一下版本,就可以发现我们已经升级到最新版本了

四、更新npm

npm包的更新其实就是自己更新自己

sudo npm install -g npm

三、安装pm2

npm install -g pm2

四、上传项目到服务器

本地运行npm run build打包,然后把.nuxt、static、nuxt.config.js、package.json、package-lock.json上传到服务器

//  .nuxt
//  static
//  nuxt.config.js
//  package.json
//  package-lock.json

五、运行项目

方式一:上传好后,运行npm install安装依赖
最后运行npm run start启动项目

npm install
npm run start

方式二:使用git拷贝整个项目到项目目录
然后依次执行

npm install
npm run build
npm run start

六、pm2 守护开启进程

在项目的根目录下,执行一下命令。启动nuxt项目

pm2 start npm --name "product_name" -- run start

可以用 pm2 list 看到当前所有node进程列表。
关于pm2的使用,请访问:https://juejin.im/post/5be406705188256dbb5176f9

顺利的话,nuxt项目已经启动起来了,但是只能内网IP进行访问。

此时,可以使用nginx做反向代理 通过外网来访问nuxt项目

七、nginx配置

server{
         listen 80;
         server_name xxx.xxxx.com;公网地址

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

         location / {
             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;
             # http://127.0.0.1 + nuxt启动端口
             proxy_pass  http://127.0.0.1:8004
          }
      }

八、重启nginx

进入nginx的sbin目录下(/user/local/nginx/sbin)

./nginx -s reload

你可能感兴趣的:(ubuntu16.04 TLS nuxt + nginx 部署服务端渲染项目)