在docker安裝了elasticsearch-head:5和elasticsearch: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
無需重新開機,重新整理頁面即可。