1. 程式人生 > >ElasticSearch 通過nginx做HTTP驗證

ElasticSearch 通過nginx做HTTP驗證

png pro cat gin cati 圖片 auth x-pack network

在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 就可以了

ElasticSearch 通過nginx做HTTP驗證