Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

求教nuxt如何部署到服务端 #13

Closed
junr-he opened this issue Jul 19, 2017 · 24 comments
Closed

求教nuxt如何部署到服务端 #13

junr-he opened this issue Jul 19, 2017 · 24 comments
Labels

Comments

@junr-he
Copy link

junr-he commented Jul 19, 2017

自己做了nuxt的尝试,但是部署到服务器有些不解,生成好的.nuxt直接到服务端运行吗?部署步骤是...

@jo0ger
Copy link

jo0ger commented Jul 20, 2017

官方文档 commands里面的“服务端渲染应用部署”已经讲了

这里我说一下我的步骤吧

  1. 本地npm run build
  2. ftp把本地文件.nuxt, package.json传到server
  3. 在server端的文件夹内,npm i --production
  4. npm start

第2步中,由于我自己用的是express的nuxt模板,所以最后build出来会生成一个build文件夹,这时也会同时将build也拷过去,所以我的server一共包含.nuxt, build, package.json,还有install的node_modules,package-lock.json(npm > 5),当然.nuxt里面除了dist其他都没用,可以删掉

image

@surmon-china
Copy link
Owner

surmon-china commented Jul 20, 2017

建议的做法是:

  1. 自定义入口文件确保对整个 node 程序的完整控制权
  2. 自定义入口后,可以确保 Pm2 等运维完整准确地监控主进程
  3. 生成 build 这一步建议在服务器端处理,也就是说本地只是负责开发模式开发相关代码和资源处理,每次提交到 git 后,服务器拉取自动 build 自动重启,这是一个比较常规的做法,也是我正在实践的方法;同时 build 产出的文件其实是本地的开发资源处理后几乎同等大小的一份,是没必要的

@surmon-china
Copy link
Owner

@jo0ger
Copy link

jo0ger commented Jul 21, 2017

@surmon-china 个人认为自动化在本地做比较好,服务器端应该只存在线上代码

最近我遇到一个问题就是在我512M的机器上进行nuxt build的时候,每次build到building files的时候都会报错,报npm ERR! Exit status 137,我google了一下,说是机器内存不够的原因

而且我觉得服务器端的自动化不可靠,可能会出现build失败或者其他未知情况

@surmon-china
Copy link
Owner

surmon-china commented Jul 21, 2017

@jo0ger 所以呀,严格的流程是应该有 deploy 服务器和 prod 服务器的,各有职责;我们个人一般只有一台机器,还很可能是低配的,所以在 build 这一步的时候需要关掉其他 node 进程,完事了在开启;更好的话可以开两个服务,使用 nginx 等 server 做负载均衡,每次有更新先 pull + build 其中一个进程,然后开启,再重复执行另一个,这样可以保证应用不掉线,但是一切都要基于内存足够,反正我的 1G 机器 不够用!哈哈

@jo0ger
Copy link

jo0ger commented Jul 22, 2017

@surmon-china 512M就开了两node server就已经快崩了,而且都还是小体量的,看来得扩一下了,对了,你网站啥时候能好?

@surmon-china
Copy link
Owner

surmon-china commented Jul 23, 2017

@jo0ger 由于单线程和异步,node 服务最不占的就是内存,相反是 cpu,特别是 ssr 这种大量字符串操作的任务,所以在 ss r应用在普遍使用缓存来转移 cpu 压力,别的我就不了解了,一个 nuxt.js 应用跑起来也就一百来兆,你刚说的内存不足可以根据自己的业务场景适当增加,但要是为了部署的话就显得没必要啦。

@wsdo
Copy link

wsdo commented Jul 23, 2017

在服务器上面,把这个项目拉下来,npm i npm run build ,最后执行 npm start 后 ,访问的时候 首页能正常显示 , 加载的js文件都是404 ,mac本地没事,在服务器有问题,不知道哪的问题,求nginx的配置规则

@jo0ger
Copy link

jo0ger commented Jul 24, 2017

@wsdo 首先你得把你的ngin配置贴出来,别人才知道出了什么问题

@liamwang
Copy link

@surmon-china 的自动热部署方案不错。 能否分享一下使用 nginx 配合 pm2 自动热部署的经验?或者有没有相关详细介绍的文章?

@surmon-china
Copy link
Owner

@liamwang https://github.com/surmon-china/deploy

很简单,pm2 开启一个 deploy 服务,这个服务又会操作 Pm2 该做的事,受 github - webhook 事件触发

@liamwang
Copy link

@surmon-china 谢谢,回头实践一下。

@surmon-china
Copy link
Owner

surmon-china commented Jul 24, 2017

@wsdo 突然意识到,你是不是把 Nuxt.js 应用当一个 spa 去配置了,他本质是一个 node 程序,需要一个node 进程工作,所以正确的姿势是在服务端使用运维工具把 node 跑起来,nginx 只负责反向代理

@jo0ger
Copy link

jo0ger commented Jul 24, 2017

@surmon-china 蜜汁尴尬

@seeia
Copy link

seeia commented Nov 20, 2017

结合pm2的deploy 和 docker 这样部署很方便。 自己构建一个镜像, 把需要的包全部打进去,这样一条命令就能实现自动部署

@hurely
Copy link

hurely commented Apr 12, 2018

@surmon-china 你好,请问nuxt怎么座敷在均衡呢?每次打包后js都带有哈希码,怎么做到多台服务一致呢?

@surmon-china
Copy link
Owner

@hurely 我没有负载均衡,只有 CDN

@kuangyazhou
Copy link

@surmon-china 大佬,pm2 提供的deploy自动拉代码然后build部署,为啥我一直没成功

@surmon-china surmon-china reopened this Aug 1, 2018
@surmon-china
Copy link
Owner

@kuangyazhou 结合日志找问题,大兄弟

@YuArtian
Copy link

YuArtian commented Sep 4, 2018

请问我只需要把.nuxt和package.json传上去么?那我其他的文件夹例如pages,layouts什么的不用穿么?为啥我不传的话build的时候就会报错说我没有pages文件夹啊?

@jo0ger
Copy link

jo0ger commented Sep 5, 2018

@YuArtian 那你就都传上去呗,理论上不应该是自己手动上传的,可以通过CI集成工具来搞定

@YuArtian
Copy link

@jo0ger thx !

@surmon-china surmon-china pinned this issue Jul 26, 2019
@niubea
Copy link

niubea commented Dec 5, 2019

想问下这套代码在服务器上nginx如何设置转发规则?

@wusiyou
Copy link

wusiyou commented Dec 15, 2021

我的博客,文章内有从零搭建到部署 https://www.blog123.top/show/9

Repository owner locked and limited conversation to collaborators Jan 29, 2022
@surmon-china surmon-china converted this issue into discussion #212 Jan 29, 2022

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
Projects
None yet
Development

No branches or pull requests