在ElasticSearch 的設定檔案中如果設定了
network.host: 0.0.0.0
則表示ElasticSearch 服務是公開的任何ip都可以訪問ElasticSearch 服務。這樣肯定是不安全的。
我們可以通過安裝 X-Pack這個然間來做對ElasticSearch 的登陸驗證,但是這個是收費的只可以免費使用30天。
還有一種方法也是我們常用就是使用nginx的反向代理服務同時使用Http-basic模組來做HTTP驗證。
在nginx 下新增配置檔案內容如下
#upstream dev.es.daojia.com.cn { # //如果有多臺伺服器可以在這裡配置upstream輪詢 # } server{ server_name dev.es.xxx.com.cn; location /{ proxy_http_version 1.1; proxy_set_header Connection ""; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; auth_basic "login"; auth_basic_user_file /etc/nginx/conf.d/htpasswd; autoindex on; proxy_pass http://127.0.0.1:9200; } access_log /data/logs/nginx/dev.es.xxx.com.cn.access.log main; error_log /data/logs/nginx/nginx-error.log; }
proxy_pass 表示代理目標
auth_basic_user_file 表示賬號密碼存放的文字地址
通過http://www.matools.com/htpasswd 來生成採用Crypt (all Unix servers)
方式密的密碼
可以看到 使用者名稱為明文密碼為加密後的用:分隔
將其複製到我們設定的目錄檔案中。
然後修改ElasticSearch 的配置network.host
如果nginx和ElasticSearch 在同一個伺服器上可以設定為
network.host: 127.0.0.1
如果不在同一個機器上就將 network.host選項設定為nginx伺服器的ip 就可以了。
然後重啟nginx 和 ElasticSearch
然後我們在通過ip加埠訪問 ElasticSearch 就無法訪問了。
在輸入我們配置的域名看一下
輸入賬號es123和密碼es123 就可以了