jackieli123723 / jackieli123723.github.io

✅lilidong 个人博客
9 stars 0 forks source link

node 部署nuxt 服务端渲染遇到的坑记录 #59

Open jackieli123723 opened 6 years ago

jackieli123723 commented 6 years ago

nuxt 部署的大坑

//经常报错
has unmet peer dependency
 npm install Killed
 NPM install - killed error solution
yarn install killed

[root@instance-7aqka2xd nuxt-ssr]# npm run build

> nuxt-ssr-demo@1.0.0 build /home/nuxt-ssr
> nuxt build && npm start

  nuxt:build Building... +0ms
… debug nuxt › proxy › [HPM] Proxy created: /api  ->  https://banner-storage-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/api" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /japi  ->  https://gold-tag-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/japi" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /rapi  ->  https://recommender-api-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/rapi" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /tapi  ->  https://timeline-merger-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/tapi" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /xapi  ->  https://xiaoce-timeline-api-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/xapi" ~> ""
… debug nuxt › axios › baseURL: http://localhost:3000/
… debug nuxt › axios › browserBaseURL: /
  nuxt:build App root: /home/nuxt-ssr +0ms
  nuxt:build Generating /home/nuxt-ssr/.nuxt files... +0ms
  nuxt:build Generating files... +74ms
  nuxt:build Generating routes... +9ms
  nuxt:build Building files... +101ms
  ████████████████████ 20% building modulessh: line 1: 108324 Killed                  nuxt build
npm ERR! code ELIFECYCLE
npm ERR! errno 137
npm ERR! nuxt-ssr-demo@1.0.0 build: `nuxt build && npm start`
npm ERR! Exit status 137
npm ERR! 
npm ERR! Failed at the nuxt-ssr-demo@1.0.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-05-08T06_17_39_636Z-debug.log

[root@instance-7aqka2xd nuxt-ssr]# npm start

> nuxt-ssr-demo@1.0.0 start /home/nuxt-ssr
> PORT=7001 nuxt start

 ERROR 

  Error: No SSR build! Please start with `nuxt start --spa` or build using `nuxt build --universal`

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! nuxt-ssr-demo@1.0.0 start: `PORT=7001 nuxt start`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the nuxt-ssr-demo@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-05-08T06_20_58_553Z-debug.log

导致上面的问题是因为centos的默认配置的虚拟内存不够导致的

解决办法

image

Solution
1. 增大内存。
由于我是虚拟机,所有增大内存相对简单。在vagrantfile里,只需要增加一条:

config.vm.provider "virtualbox" do |v|
  v.memory = 1024
end
即可。

2. 利用swap file实现虚拟内存
使用

sudo swapon -s
查看系统是否配置了交换区域。没有的话, 便直接开始创建swap file。
创建一个1G的文件。

sudo fallocate -l 1G /swapfile
使用

ls -lh /swapfile
确认是否是自己所需要的文件大小。

启用Swap文件
首先调整文件的权限,若该文件能被其他用户随意的读写,则会产生很大的安全隐患。

sudo chmod 600 /swapfile
现在安全多了,可以让系统开始设置交换区域了。

sudo mkswap /swapfile
启用该文件

sudo swapon /swapfile
现在基本的步骤已经完成了,可以使用最初的命令验证swap file是否正确使用。

sudo swapon -s
Filename                    Type          Size     Used     Priority
/swapfile                               file          1048572     0     -1
交换分区已经成功设置,系统会在必要的时候使用它。

注意
现在已经启用了swap文件,但当我们重启的时候,系统不会自动地启用该swap文件。可以通过修改fstab文件实现开机使用swap文件。
用root权限编辑

sudo vim /etc/fstab
在文件的最后,需要添加一行告诉操作系统自动使用swap文件。

/swapfile   none    swap    sw    0   0
如此再npm install 的时候,便解决了所有的问题了。

下面是本实例的代码

[root@instance-7aqka2xd nuxt-ssr]# npm -v
5.6.0
[root@instance-7aqka2xd nuxt-ssr]# npm update
[root@instance-7aqka2xd nuxt-ssr]# ls -lh /swapfile
ls: cannot access /swapfile: No such file or directory
[root@instance-7aqka2xd nuxt-ssr]# sudo swapon -s
[root@instance-7aqka2xd nuxt-ssr]# sudo fallocate -l 1G /swapfile
[root@instance-7aqka2xd nuxt-ssr]# ls -lh /swapfile
-rw-r--r-- 1 root root 1.0G May  8 16:13 /swapfile
[root@instance-7aqka2xd nuxt-ssr]# sudo chmod 600 /swapfile
[root@instance-7aqka2xd nuxt-ssr]# sudo mkswap /swapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=6791127d-3186-4def-893e-99440036a5dd
[root@instance-7aqka2xd nuxt-ssr]# sudo swapon /swapfile
[root@instance-7aqka2xd nuxt-ssr]# sudo swapon -s
Filename                Type        Size    Used    Priority
/swapfile                               file    1048572 0   -1
[root@instance-7aqka2xd nuxt-ssr]# sudo vim /etc/fstab
[root@instance-7aqka2xd nuxt-ssr]# ll
total 116
-rw-r--r--   1 root root   268 Apr 10 18:48 app.html
drwxr-xr-x   5 root root  4096 Apr 17 17:37 assets
drwxr-xr-x   4 root root  4096 Apr 17 17:37 components
drwxr-xr-x   2 root root  4096 Apr 17 17:37 layouts
-rw-r--r--   1 root root  1087 Apr 10 18:48 LICENSE
drwxr-xr-x   2 root root  4096 Apr 17 17:37 middleware
drwxr-xr-x 824 root root 36864 May  8 16:07 node_modules
-rw-r--r--   1 root root  2077 Apr 10 18:48 nuxt.config.js
-rw-r--r--   1 root root  1095 Apr 17 18:57 package.json
drwxr-xr-x   4 root root  4096 Apr 17 17:37 pages
drwxr-xr-x   2 root root  4096 Apr 17 17:37 plugins
-rw-r--r--   1 root root 16834 Apr 10 18:48 README.md
drwxr-xr-x   2 root root  4096 Apr 17 17:37 service
drwxr-xr-x   2 root root  4096 Apr 17 17:37 static
drwxr-xr-x   2 root root  4096 Apr 17 17:37 store
drwxr-xr-x   3 root root  4096 Apr 17 17:37 utils
[root@instance-7aqka2xd nuxt-ssr]# ls -lh /swapfile
-rw------- 1 root root 1.0G May  8 16:13 /swapfile
[root@instance-7aqka2xd nuxt-ssr]# ll

[root@instance-7aqka2xd nuxt-ssr]# rm -rf node_modules/
[root@instance-7aqka2xd nuxt-ssr]# npm install

> uglifyjs-webpack-plugin@0.4.6 postinstall /home/nuxt-ssr/node_modules/webpack/node_modules/uglifyjs-webpack-plugin
> node lib/post_install.js

> nuxt@1.4.0 postinstall /home/nuxt-ssr/node_modules/nuxt
> opencollective postinstall || exit 0

                           Thanks for installing nuxt 
                 Please consider donating to our open collective
                        to help us maintain this package.

                           Number of contributors: 114
                              Number of backers: 84
                            Annual budget: US$ 17,321
                            Current balance: US$ 3,345

             Donate: https://opencollective.com/nuxtjs/donate

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN ajv-keywords@3.2.0 requires a peer of ajv@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.3 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

added 1225 packages in 68.766s
[root@instance-7aqka2xd nuxt-ssr]# ls
app.html  assets  components  layouts  LICENSE  middleware  node_modules  nuxt.config.js  package.json  package-lock.json  pages  plugins  README.md  service  static  store  utils
[root@instance-7aqka2xd nuxt-ssr]# ll

这时候安装成功了  
[root@instance-7aqka2xd nuxt-ssr]# npm run build

> nuxt-ssr-demo@1.0.0 build /home/nuxt-ssr
> nuxt build && npm start

  nuxt:build Building... +0ms
… debug nuxt › proxy › [HPM] Proxy created: /api  ->  https://banner-storage-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/api" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /japi  ->  https://gold-tag-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/japi" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /rapi  ->  https://recommender-api-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/rapi" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /tapi  ->  https://timeline-merger-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/tapi" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /xapi  ->  https://xiaoce-timeline-api-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/xapi" ~> ""
… debug nuxt › axios › baseURL: http://localhost:3000/
… debug nuxt › axios › browserBaseURL: /
  nuxt:build App root: /home/nuxt-ssr +0ms
  nuxt:build Generating /home/nuxt-ssr/.nuxt files... +0ms
  nuxt:build Generating files... +44ms
  nuxt:build Generating routes... +13ms
  nuxt:build Building files... +196ms
  ████████████████████ 100% 

Build completed in 41.342s

 WARNING  Compiled with 1 warnings                                                                                                                                                                                                  16:23:07

 warning  

asset size limit: The following asset(s) exceed the recommended size limit (300 kB).
This can impact web performance.
Assets: 
  img/ionicons.76feedd.svg (336 kB)
  vendor.e14d0989efae60ac15fa.js (850 kB)

Hash: fe9e2f17d838403344e3
Version: webpack 3.11.0
Time: 41348ms
                                                 Asset       Size  Chunks                    Chunk Names
             pages/index/index.bca870321d8fd142f22b.js    11.2 kB       1  [emitted]         pages/index/index
                              img/ionicons.76feedd.svg     336 kB          [emitted]  [big]  
                            fonts/ionicons.dd4781d.ttf     189 kB          [emitted]         
                                 img/write.ca0cfea.svg    2.42 kB          [emitted]         
                            fonts/ionicons.19e65b8.eot     121 kB          [emitted]         
                           fonts/ionicons.2c159d0.woff    67.9 kB          [emitted]         
                                img/search.526a0c9.svg    1.26 kB          [emitted]         
                         img/active-search.c211c8f.svg    1.27 kB          [emitted]         
pages/index/_welcome/_category.609551d21b95ddd9bec2.js    17.7 kB       0  [emitted]         pages/index/_welcome/_category
                                img/juejin.551f1de.svg    6.25 kB          [emitted]         
                   pages/index.df9ecfedca6fbc169b59.js    13.3 kB       2  [emitted]         pages/index
                   pages/books.76431419069959334c65.js    9.31 kB       3  [emitted]         pages/books
               layouts/default.4adda06f91b72349d819.js    8.38 kB       4  [emitted]         layouts/default
                   pages/repos.57a823037aee915da117.js  983 bytes       5  [emitted]         pages/repos
              pages/events/all.11ba2cef70a8b7c80433.js  995 bytes       6  [emitted]         pages/events/all
                        vendor.e14d0989efae60ac15fa.js     850 kB       7  [emitted]  [big]  vendor
                           app.6356a70fddb8444fae16.js      98 kB       8  [emitted]         app
                      manifest.fe9e2f17d838403344e3.js     1.7 kB       9  [emitted]         manifest
                                              LICENSES    1.46 kB          [emitted]         
 + 3 hidden assets

WARNING in asset size limit: The following asset(s) exceed the recommended size limit (300 kB).
This can impact web performance.
Assets: 
  img/ionicons.76feedd.svg (336 kB)
  vendor.e14d0989efae60ac15fa.js (850 kB)
Hash: b5f953177af1e653efb8
Version: webpack 3.11.0
Time: 5638ms
             Asset    Size  Chunks             Chunk Names
server-bundle.json  365 kB          [emitted]  
  nuxt:build Building done +54s

> nuxt-ssr-demo@1.0.0 start /home/nuxt-ssr
> PORT=7001 nuxt start

… debug nuxt › proxy › [HPM] Proxy created: /api  ->  https://banner-storage-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/api" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /japi  ->  https://gold-tag-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/japi" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /rapi  ->  https://recommender-api-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/rapi" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /tapi  ->  https://timeline-merger-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/tapi" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /xapi  ->  https://xiaoce-timeline-api-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/xapi" ~> ""
… debug nuxt › axios › baseURL: http://localhost:7001/
… debug nuxt › axios › browserBaseURL: /

 OPEN  http://localhost:7001

  nuxt:render Rendering url / +0ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +3s
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +7ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +2s
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +21ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url / +8s
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +254ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +7ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +468ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +3ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url / +764ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +255ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +91ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +216ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +56ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url / +517ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +254ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +67ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +195ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +58ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url / +557ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +234ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +5ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +247ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +55ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url / +598ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +315ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +5ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +259ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +61ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url / +221ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +236ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +62ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +187ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +56ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url / +622ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +227ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +51ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +207ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +57ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +3s
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +14ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +186ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +5ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +1s
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +59ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url / +32s
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +363ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +60ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url / +5s
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +379ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +73ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url / +1m
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +618ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +37ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url / +2s
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +740ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +6ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url / +789ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +527ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +52ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url / +6s
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +402ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +228ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +12s
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +6ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +5s
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +7ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +1s
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +57ms
  nuxt:render Rendering url / +1mmmended_entry
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +352ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +57ms
get request url /tapi/v1/get_entry_by_rank
  nuxt:render Rendering url /?imageView2/1/w/160/h/103 +598ms
get request url /rapi/v1/get_recommended_entry
  nuxt:render Rendering url /null?imageView2/1/w/160/h/103 +5ms
get request url /tapi/v1/get_entry_by_rank
----http://180.76.154.80:82/
jackieli123723 commented 6 years ago

自己百度云服务器部署nuxt服务端 项目


[root@instance-7aqka2xd sbin]# whereis nginx
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz /usr/share/man/man3/nginx.3pm.gz
[root@instance-7aqka2xd sbin]# pwd
/usr/sbin
[root@instance-7aqka2xd sbin]# ./nginx -s reload 重启
[root@instance-7aqka2xd sbin]# 

upstream nodenuxt {
    server 127.0.0.1:7001; # nuxt 项目监听端口
    keepalive 64;
}
server {

  #ip代理方式
  listen 82;
  server_name 180.76.154.80;

  location / {
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Nginx-Proxy true;
    proxy_cache_bypass $http_upgrade;
    proxy_pass http://nodenuxt; # 反向代理
  }
}

[root@instance-7aqka2xd nuxt-ssr]# netstat -an | grep 7001
[root@instance-7aqka2xd nuxt-ssr]# 

并没有监听到
pm2 start npm --name "nuxtport7001-ssr-demo" -- run build --watch (502错误有时候出现)

这个当前环境
[root@instance-7aqka2xd sbin]# node -v
v10.0.0
[root@instance-7aqka2xd sbin]# npm -v
5.6.0
[root@instance-7aqka2xd sbin]# 

[root@instance-7aqka2xd nuxt-ssr]# netstat -an | grep 7001
[root@instance-7aqka2xd nuxt-ssr]# pm2 start npm --name "nuxtport7001-ssr-demo" -- run build
[PM2] Starting /usr/local/bin/npm in fork_mode (1 instance)
[PM2] Done.
┌───────────────────────┬────┬──────┬────────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐
│ App name              │ id │ mode │ pid    │ status │ restart │ uptime │ cpu │ mem       │ user │ watching │
├───────────────────────┼────┼──────┼────────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤
│ app                   │ 0  │ fork │ 104888 │ online │ 43      │ 2h     │ 0%  │ 10.9 MB   │ root │ disabled │
│ nuxtport7001-ssr-demo │ 4  │ fork │ 109046 │ online │ 0       │ 0s     │ 55% │ 18.0 MB   │ root │ disabled │
└───────────────────────┴────┴──────┴────────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app
[root@instance-7aqka2xd nuxt-ssr]# netstat -an | grep 7001
[root@instance-7aqka2xd nuxt-ssr]# netstat -an | grep 7001
[root@instance-7aqka2xd nuxt-ssr]# netstat -an | grep 7001

pm2 任务有了 但是没有启动成功

[root@instance-7aqka2xd nuxt-ssr]# pm2 start npm --name "nuxtport7001-ssr-demo" -- run build
[PM2] Starting /usr/local/bin/npm in fork_mode (1 instance)
[PM2] Done.
┌───────────────────────┬────┬──────┬────────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐
│ App name              │ id │ mode │ pid    │ status │ restart │ uptime │ cpu │ mem       │ user │ watching │
├───────────────────────┼────┼──────┼────────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤
│ app                   │ 0  │ fork │ 104888 │ online │ 43      │ 2h     │ 0%  │ 8.4 MB    │ root │ disabled │
│ nuxtport7001-ssr-demo │ 4  │ fork │ 109046 │ online │ 0       │ 89s    │ 0%  │ 8.2 MB    │ root │ disabled │
│ nuxtport7001-ssr-demo │ 5  │ fork │ 109106 │ online │ 0       │ 6s     │ 3%  │ 17.3 MB   │ root │ disabled │
└───────────────────────┴────┴──────┴────────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app
[root@instance-7aqka2xd nuxt-ssr]# netstat -an | grep 7001
tcp        0      0 127.0.0.1:7001          0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:37698         127.0.0.1:7001          ESTABLISHED
tcp        0      0 127.0.0.1:7001          127.0.0.1:37714         TIME_WAIT  
tcp        0      0 127.0.0.1:7001          127.0.0.1:37710         TIME_WAIT  
tcp        0      0 127.0.0.1:7001          127.0.0.1:37708         ESTABLISHED
tcp        0      0 127.0.0.1:7001          127.0.0.1:37700         TIME_WAIT  
tcp        0      0 127.0.0.1:37708         127.0.0.1:7001          ESTABLISHED
tcp        0      0 127.0.0.1:7001          127.0.0.1:37704         TIME_WAIT  
tcp        0      0 127.0.0.1:7001          127.0.0.1:37698         ESTABLISHED

端口也监听了7001 但是没有内容 502 Bad Gateway

用npm run build 是ok的

[root@instance-7aqka2xd nuxt-ssr]# npm run build

> nuxt-ssr-demo@1.0.0 build /home/nuxt-ssr
> nuxt build && npm start

  nuxt:build Building... +0ms
… debug nuxt › proxy › [HPM] Proxy created: /api  ->  https://banner-storage-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/api" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /japi  ->  https://gold-tag-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/japi" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /rapi  ->  https://recommender-api-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/rapi" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /tapi  ->  https://timeline-merger-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/tapi" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /xapi  ->  https://xiaoce-timeline-api-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/xapi" ~> ""
… debug nuxt › axios › baseURL: http://localhost:3000/
… debug nuxt › axios › browserBaseURL: /
  nuxt:build App root: /home/nuxt-ssr +0ms
  nuxt:build Generating /home/nuxt-ssr/.nuxt files... +0ms
  nuxt:build Generating files... +78ms
  nuxt:build Generating routes... +9ms
  nuxt:build Building files... +39ms
  ████████████████████ 100% 

Build completed in 63.451s

 WARNING  Compiled with 1 warnings                                                                                                                                                                                                  16:47:24

 warning  

asset size limit: The following asset(s) exceed the recommended size limit (300 kB).
This can impact web performance.
Assets: 
  img/ionicons.76feedd.svg (336 kB)
  vendor.e14d0989efae60ac15fa.js (850 kB)

Hash: fe9e2f17d838403344e3
Version: webpack 3.11.0
Time: 63442ms
                                                 Asset       Size  Chunks                    Chunk Names
             pages/index/index.bca870321d8fd142f22b.js    11.2 kB       1  [emitted]         pages/index/index
                              img/ionicons.76feedd.svg     336 kB          [emitted]  [big]  
                            fonts/ionicons.dd4781d.ttf     189 kB          [emitted]         
                                 img/write.ca0cfea.svg    2.42 kB          [emitted]         
                            fonts/ionicons.19e65b8.eot     121 kB          [emitted]         
                           fonts/ionicons.2c159d0.woff    67.9 kB          [emitted]         
                                img/search.526a0c9.svg    1.26 kB          [emitted]         
                         img/active-search.c211c8f.svg    1.27 kB          [emitted]         
pages/index/_welcome/_category.609551d21b95ddd9bec2.js    17.7 kB       0  [emitted]         pages/index/_welcome/_category
                                img/juejin.551f1de.svg    6.25 kB          [emitted]         
                   pages/index.df9ecfedca6fbc169b59.js    13.3 kB       2  [emitted]         pages/index
                   pages/books.76431419069959334c65.js    9.31 kB       3  [emitted]         pages/books
               layouts/default.4adda06f91b72349d819.js    8.38 kB       4  [emitted]         layouts/default
                   pages/repos.57a823037aee915da117.js  983 bytes       5  [emitted]         pages/repos
              pages/events/all.11ba2cef70a8b7c80433.js  995 bytes       6  [emitted]         pages/events/all
                        vendor.e14d0989efae60ac15fa.js     850 kB       7  [emitted]  [big]  vendor
                           app.6356a70fddb8444fae16.js      98 kB       8  [emitted]         app
                      manifest.fe9e2f17d838403344e3.js     1.7 kB       9  [emitted]         manifest
                                              LICENSES    1.46 kB          [emitted]         
 + 3 hidden assets

WARNING in asset size limit: The following asset(s) exceed the recommended size limit (300 kB).
This can impact web performance.
Assets: 
  img/ionicons.76feedd.svg (336 kB)
  vendor.e14d0989efae60ac15fa.js (850 kB)
Hash: b5f953177af1e653efb8
Version: webpack 3.11.0
Time: 4391ms
             Asset    Size  Chunks             Chunk Names
server-bundle.json  365 kB          [emitted]  
  nuxt:build Building done +1m

> nuxt-ssr-demo@1.0.0 start /home/nuxt-ssr
> PORT=7001 nuxt start

… debug nuxt › proxy › [HPM] Proxy created: /api  ->  https://banner-storage-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/api" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /japi  ->  https://gold-tag-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/japi" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /rapi  ->  https://recommender-api-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/rapi" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /tapi  ->  https://timeline-merger-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/tapi" ~> ""
… debug nuxt › proxy › [HPM] Proxy created: /xapi  ->  https://xiaoce-timeline-api-ms.juejin.im
… debug nuxt › proxy › [HPM] Proxy rewrite rule created: "^/xapi" ~> ""
… debug nuxt › axios › baseURL: http://localhost:7001/
… debug nuxt › axios › browserBaseURL: /

 OPEN  http://localhost:7001

 ## 初步分析原因是 nuxt build 时间过长导致了还没编译完成就启动了  nuxt start 虽然pm2 任务成功了 但是没有内容所以报错502
 现在的
   "scripts": {
    "dev": "nuxt",
    "build": "nuxt build && npm start",
    "start": "PORT=7001 nuxt start",
    "generate": "nuxt generate",
    "deploy": "gh-pages -d dist",
    "lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
    "precommit": "npm run lint"
  },

改为或者另外一个版本
  {
  "name": "my-app",
  "dependencies": {
    "next": "latest"
  },
  "scripts": {
    "dev": "nuxt",
    "start": "nuxt start -p $PORT",
    "build": "nuxt build && PORT=8205 npm start"
  }
}
注: 为方便与pm2守护进行结合, 使用更加方便nuxt.js服务端渲染应用部署这样就完成了 
官方先后执行 npm run build 、npm start 即可完成部署。 
而我这边只要执行 npm run build ,其实我只是把两个合并成一个,并设置了端口以便区别其他应用,避免端口占用!

pm2 start npm --name "jsyfShopNuxt" -- run start

[root@instance-7aqka2xd nuxt-ssr]# pm2 start npm --name "jsyfShopNuxt" -- run start
[PM2] Starting /usr/local/bin/npm in fork_mode (1 instance)
[PM2] Done.
┌──────────────┬────┬──────┬────────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐
│ App name     │ id │ mode │ pid    │ status │ restart │ uptime │ cpu │ mem       │ user │ watching │
├──────────────┼────┼──────┼────────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤
│ app          │ 0  │ fork │ 104888 │ online │ 43      │ 3h     │ 0%  │ 5.8 MB    │ root │ disabled │
│ jsyfShopNuxt │ 6  │ fork │ 109397 │ online │ 0       │ 0s     │ 52% │ 20.1 MB   │ root │ disabled │
└──────────────┴────┴──────┴────────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app
[root@instance-7aqka2xd nuxt-ssr]# netstat -an | grep 7001
tcp        0      0 127.0.0.1:7001          0.0.0.0:*               LISTEN     
[root@instance-7aqka2xd nuxt-ssr]# pm2 monit 6

jsyfShopNuxt > 2018-05-08T09:09:23.494Z nuxt:render Rendering url /?imageView2/1/w/160/h/103                                                                      x
x[ 6] jsyfShopNuxt                  Mem:  30 MB    CPU:  0 %  online xx jsyfShopNuxt > get request url /rapi/v1/get_recommended_entry                                                                                                     x
x                                                                    xx jsyfShopNuxt > 2018-05-08T09:09:23.550Z nuxt:render Rendering url /null?imageView2/1/w/160/h/103                                                                  x
x                                                                    xx jsyfShopNuxt > get request url /tapi/v1/get_entry_by_rank                                                                                                         x
x                                                                    xx jsyfShopNuxt > 2018-05-08T09:09:27.285Z nuxt:render Rendering url /null?imageView2/1/w/160/h/103                                                                  x
x                                                                    xx jsyfShopNuxt > get request url /tapi/v1/get_entry_by_rank                                                                                                         x
x                                                                    xx jsyfShopNuxt > 2018-05-08T09:09:27.345Z nuxt:render Rendering url /?imageView2/1/w/160/h/103                                                                      x
x                                                                    xx jsyfShopNuxt > get request url /rapi/v1/get_recommended_entry                                                                                                     x
x                                                                    xx                                                                                                                                                                   x
x                                                                    xx                                                                                                                                                                   x
x                                                                    xx                                                                                                                                                                   x
x                                                                    xx                                                                             

能拿到日志 

这种部署没问题、、

 build": "nuxt build && npm start", 
"build1": "nuxt build && PORT=7001 nuxt start",
"start": "PORT=7001 nuxt start",

改种
pm2 start npm --watch --name nuxt -- run build 这种方式有bug (pm启动了但是没内容502错误)
pm2 start npm --watch --name nuxt -- run build1 这个可以用 (最好采用该方式)

哈哈 导致上面的错误 可以用pm2 monit 来监控日志看看

 [root@instance-7aqka2xd nuxt-ssr]# pm2 start npm --watch --name nuxt -- run build1
[PM2] Starting /usr/local/bin/npm in fork_mode (1 instance)
[PM2] Done.
┌──────────┬────┬──────┬────────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐
│ App name │ id │ mode │ pid    │ status │ restart │ uptime │ cpu │ mem       │ user │ watching │
├──────────┼────┼──────┼────────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤
│ app      │ 0  │ fork │ 104888 │ online │ 43      │ 3h     │ 0%  │ 6.3 MB    │ root │ disabled │
│ nuxt     │ 7  │ fork │ 109601 │ online │ 0       │ 0s     │ 47% │ 18.4 MB   │ root │ enabled  │
└──────────┴────┴──────┴────────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘
[root@instance-7aqka2xd nuxt-ssr]# netstat -an | grep 7001
tcp        0      0 127.0.0.1:7001          0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:7001          127.0.0.1:38242         TIME_WAIT  
tcp        0      0 127.0.0.1:7001          127.0.0.1:38234         TIME_WAIT  
tcp        0      0 127.0.0.1:7001          127.0.0.1:38248         TIME_WAIT  
tcp        0      0 127.0.0.1:7001          127.0.0.1:38262         TIME_WAIT  
tcp        0      0 127.0.0.1:7001          127.0.0.1:38264         TIME_WAIT  
tcp        0      0 127.0.0.1:7001          127.0.0.1:38228         TIME_WAIT  
tcp        0      0 127.0.0.1:7001          127.0.0.1:38224         TIME_WAIT  
tcp        0      0 127.0.0.1:7001          127.0.0.1:38232         TIME_WAIT  
tcp        0      0 127.0.0.1:7001          127.0.0.1:38272         TIME_WAIT  
tcp        0      0 127.0.0.1:7001          127.0.0.1:38222         TIME_WAIT  
tcp        0      0 127.0.0.1:7001          127.0.0.1:38252         TIME_WAIT  
tcp        0      0 127.0.0.1:7001          127.0.0.1:38256         TIME_WAIT  
tcp        0      0 127.0.0.1:7001          127.0.0.1:38240         TIME_WAIT  
tcp        0      0 127.0.0.1:7001          127.0.0.1:38274         TIME_WAIT  
tcp        0      0 127.0.0.1:7001          127.0.0.1:38254         TIME_WAIT  
tcp        0      0 127.0.0.1:7001          127.0.0.1:38268         TIME_WAIT  

image

image

image

结论 因为 nuxt 打包太耗时 导致7001 端口服务还没启动的时候 没有成功 所以502 等85s后可以看到7001端口成功 访问也有内容 pm2 monit 日志也有内容