ElasticSearch 通過nginx做HTTP驗證
阿新 • • 發佈:2018-03-19
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驗證