elasticsearch-head 5连接elasticsearch 6.x无法显示数据的解决办法

在docker安装了elasticsearch-head:5elasticsearch:6.3.2(相关博客点这里)之后,打开界面连接es时发现数据无法展示。于是网上查了下原因,说是elasticsearch 6增加了请求头严格校验的原因,并且返回结果是

{
  "error" : "Content-Type header [application/x-www-form-urlencoded] is not supported",
  "status" : 406
}

所以我们需要修改一下elasticsearch-head 5的配置文件。

1、因为docker容器里面无法使用vi/vim,所以需要先将文件拷贝出来。

命令docker cp es_head:/usr/src/app/_site/vendor.js ./

说明:将容器里面/usr/src/app/_site/vendor.js文件拷贝到宿主机的当前目录下,其中es_head为容器名,也可以写容器id。

2、编辑文件

vi vendor.js

共有两处

1)6886行
contentType: "application/x-www-form-urlencoded
改成
contentType: "application/json;charset=UTF-8"
2)7573行
var inspectData = s.contentType === "application/x-www-form-urlencoded" &&
改成
var inspectData = s.contentType === "application/json;charset=UTF-8" &&

补充说明

vi中显示行号的命令为

:set nu

vi中跳转到指定行的命令为

:行号 

3、将改完后的文件拷贝回容器

docker cp vendor.js es_head:/usr/src/app/_site

无需重启,刷新页面即可。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章