es:migrate 报错:No alive nodes found in your cluster

  1. 按照教程,重复操作了好几次,还是这个No alive nodes found in your cluster,偶然间,我把 第一台服务器上修改的 elasticsearch 的 network.host 给注释,重启监听 127.0.0.1 ,
    tcp        0      0 127.0.0.1:9200          0.0.0.0:*               LISTEN      3214/java 

    然后执行部署报错消失,我有些纳闷,这个原因是什么?

PS: 查看两个服务器,部署项目的 .env 文件, ES_HOSTS = {云服务器的内网 IP}:9200

此外:还有一个疑问:

  1. dep部署的时候,部署后,有时部署文件会是 release -> releases/2/ ,这是什么原因导致?

谢谢~

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
leo
最佳答案
  1. 登录到第一台服务器上并 cd 到最新的 release 目录
  2. 查看该目录下 .env 里的 ES_HOST 是否指向内网 IP
  3. 执行 es:migrate 查看是否报错
  4. 进入 tinker 并执行 config('database.elasticsearch') 看看输出是否为内网 IP
4年前 评论
讨论数量: 5
leo

执行把监听 IP 改成内网,然后执行 curl {云服务器的内网 IP}:9200 看看输出什么

4年前 评论

@leo 修改,重启监听内网 IP 后,curl 返回正常 You Know, for Search

tcp        0      0 172.19.97.15:9200       0.0.0.0:*               LISTEN      6125/java 

可访问前端 500,查看日志又是 No alive nodes found in your cluster

4年前 评论
leo
  1. 登录到第一台服务器上并 cd 到最新的 release 目录
  2. 查看该目录下 .env 里的 ES_HOST 是否指向内网 IP
  3. 执行 es:migrate 查看是否报错
  4. 进入 tinker 并执行 config('database.elasticsearch') 看看输出是否为内网 IP
4年前 评论

@leo 找到了问题:config('database.elasticsearch') 读取是 null 的,6.6 节我将配置 elasticsearch 的代码写错了位置。最后,清除缓存,可以正常访问。 :sweat_smile: 谢谢~ ~ ~

4年前 评论

:sweat_smile: 还有种情况,停机重启后elasticsearch未自动启动,也会出现这种情况, 给自己挖的好坑

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!