答案 0 :(得分:0)
编辑:聊天后,您的问题原因是您不希望将ES暴露给外部世界,只发布到您的应用中。解决方案是通过设置:
将ES绑定到本地接口network.host: 127.0.0.1
上一个回答:
通常,您将运行执行基本身份验证的nginx(或其他Web服务器),然后将请求代理到Elasticsearch。
这是一个精简配置,可以帮助您。考虑为您的服务器使用SSL / TLS,因为BasicAuth密码以明文形式发送。
server {
listen 80 default_server;
server_name your.server.address.com;
client_max_body_size 50M;
location / {
# Pass requests to ElasticSearch
proxy_pass http://localhost:9200;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
# For CORS Ajax
proxy_pass_header Access-Control-Allow-Origin;
proxy_pass_header Access-Control-Allow-Methods;
proxy_hide_header Access-Control-Allow-Headers;
add_header Access-Control-Allow-Headers 'X-Requested-With, Content-Type';
add_header Access-Control-Allow-Credentials true;
# Authorize access
auth_basic "ElasticSearch";
auth_basic_user_file /etc/elasticsearch/passwords;
}
}