采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
为什么
1、腾讯云centos7.2 64位,本地pm2部署服务器,没有报错,但始终获取不到最新的代码。
2、在服务器端,手动修改代码后,直接通过ip或域名访问页面,也不会自动刷新修改后的内容。
你是不是没有 setup 成功啊,我看服务器的目录,是 server-test 下面直接是文件了
setup 成功后,应该是 server-test/production/current|source|shared 的目录才对
ecosystem 文件里的 git 地址 是 git 协议吧,另外 ref 是 origin/master
本地基于主分支 master checkout 一个新分支出来
git checkout master -b xxx
然后 xxx 上做一些改动,push 上去,再把 ecosystem 的 ref 也改成 origin/xxx,再 push
然后重新 deploy 下看看
感觉这个很奇怪,pm2 如果拿不到最新的 master 代码,就不应该 deploy success 啊
添加新分支后,重新setup和部署,还是一样的:本机显示部署成功,但还是拿不到最新push的版本。 还有一个问题就是:不添加--watch,pm2不会自动加载文件吧。我在服务器手动修改了文件,直接刷新页面也不显示改动的内容,也还是旧的内容。
https://git.oschina.net/yunling2016/server-test.git 我的文件应该没有问题,否则,在本地不能部署成功吧。
--watch 加上后,是可以监听你在服务器的文件改动的,我自己一般是不加的,因为从本地每次部署的时候,就会执行 startOrRestart 的操作,会强制重启,卸掉内存,重新加载。 你在服务器上改了后,可以在 current 目录下,重新执行 pm2 startOrRestart ecosystem.json --env production 这样就可以重启这个项目。 现在的问题是,拿不到最新代码,你把 git 地址协议换一下,换成 "repo" : "git@oschina.net 这种的,再试试看,另外把 ecosystem 代码贴出来给我看一下
pm2 logs 打印出来,没有报错对吧
sudo nginx -s stop
或者 sudo pkill -9 nginx
停掉 nginx 后,还是 pm2 启动这个 nodejs 服务,如果这个是跑在 3001 端口的话,通过
xx.xx.xx.xx:3001 ip 来访问这个端口试试看,如果能访问到,说明是 nginx 的配置没有成功,如果访问不到,说明是 nodejs 本身的问题。
还有一种可能是 iptables 没有配置端口访问的权限,导致 nginx 监听不到 nodejs 的端口服务
pm2 logs没有报错。我git上的项目文件,和课程中一样的app.js静态文件,而且只有这一个文件。没有动过、开启和配置过iptables。 nginx stop后,加端口8090可以访问。nginx start后,域名、域名:8090、ip、ip:8090均能访问得到。 1、即使我在服务器vi、wq修改文件后,页面依然不显示新的改动,是否一定要加上--watch,才能自动重载文件,显示新内容?
2、我在本机git commit git push,pm2 deploy ecosystem.json production后,服务器端current、source中的文件依然不是最新提交的版本(两端命令行没有报错,pm2 logs也没有报错)。也就是,本地pm2部署到服务器,无法获取到github项目文件最新的那个版本,只能重新setup,才能获取到最新的。 是不是我的pm2安装有问题,还是centos的问题,还是7.2的问题,还是别的问题呢?
Nginx 是能缓存静态文件的,但我推测不是 Nginx 的问题,应该是 PM2 部署的时候,无法让 centos 服务器成功拉取到你本地 push 到 git repo 的最新代码。 现在先修改下 app.js 然后 commit/push 到 repo 后,再执行 pm2 deploy ecosystem.json production 后,本机控制台打印的是什么内容。 另外,deploy 后,登录到服务器,直接通过 git clone your-git-repo-url 往服务器随便一个目录获取下源代码,看看这个代码是不是最新的
哦,那--watch是不需要咯。repo用的就是git@ 这样的,我昨晚也试过https也不行。
{ "apps":[ { "name": "serverTest", "script": "app.js", "env": { "COMMON_VARIABLE": "true" }, "env_production": { "NODE_ENV": "production" } } ], "deploy":{ "production":{ "user": "root", "host": ["119.29.178.47"], "ref": "origin/xiao", "repo": "git@git.oschina.net:yunling2016/server-test.git", "path": "/www/server-test/production", "ssh_options": "StrictHostKeyChecking=no", "env": { "NODE_ENV": "production" } } } }
0、pm2 list cpu为0%,本机和服务器cpu都为0%; 1、应该是pm2,根本就没有自动进行这些动作; 2、腾讯云服务器,30天体验版。服务器不支持?
你把你服务器登录权限给我,发我邮箱 wolf18387@qq.com,我登录试试看
pm2 启动时加 --watch
登录后可查看更多问答,登录/注册
阿里云部署Node.js+MongoDB+Nginx的应用项目,打通全栈
1.1k 14
1.9k 12
1.9k 7
1.1k 7
3.5k 7