Я использую клиент PHP elasticsearch.Безопасный доступ к Elasticsearch через браузер
Как защитить данные на моем производственном сервере, заблокировав доступ через браузер? ..
http://api ************* co.uk:9200
Я использую клиент PHP elasticsearch.Безопасный доступ к Elasticsearch через браузер
Как защитить данные на моем производственном сервере, заблокировав доступ через браузер? ..
http://api ************* co.uk:9200
Edit: После того, как в чате, ваша проблема оказалась в том, что вы не хотите, чтобы выставить ES в внешний мир, только для вашего приложения. Решение было Привязать ES к локальному интерфейсу, установив:
network.host: 127.0.0.1
Предыдущий ответ:
Как правило, будет работать Nginx (или другой веб-сервер), который выполняет обычную проверку подлинности, а затем прокси-запросы к Elasticsearch.
Это урезанная конфигурация, которая может вам помочь. Рассмотрите возможность использования SSL/TLS для вашего сервера, так как пароли BasicAuth отправляются в clear в противном случае.
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;
}
}
У вас есть что-нибудь для Apache? Я не использую nginx –
Не с головы, но он должен переводить довольно прямо. Настройте vhost, который использует BasicAuth и прокси-серверы для ES. –
Я пытаюсь понять, как это работает. Elasticsearch установлен на том же сервере, что и мое приложение, так что любой vhost я создаю, elasticsearch доступен на порту 9200. Единственный способ, о котором я могу думать, - это когда-нибудь перенаправить весь трафик на порт 9200 на php-скрипт, где я могу проверить для базовой проверки подлинности http? –