ElasticSearch не допускает CORS, даже если он отключен - PullRequest
2 голосов
/ 10 июля 2019

Я запускаю ElasticSearch 6.6.1 на kubernetes вместе с несколькими контейнерами NodeJS. У меня нет проблем с загрузкой вasticsearch через NodeJS, но я не могу сделать запрос.

Мой elasticsearch.yml:


node.data: ${NODE_DATA:true}
node.master: ${NODE_MASTER:true}
node.ingest: ${NODE_INGEST:true}
node.name: ${HOSTNAME}

network.host: 0.0.0.0
# see https://github.com/kubernetes/kubernetes/issues/3595
bootstrap.memory_lock: ${BOOTSTRAP_MEMORY_LOCK:false}

discovery:
  zen:
    ping.unicast.hosts: ${DISCOVERY_SERVICE:}
    minimum_master_nodes: ${MINIMUM_MASTER_NODES:2}

# see https://github.com/elastic/elasticsearch-definitive-guide/pull/679
processors: ${PROCESSORS:}

# avoid split-brain w/ a minimum consensus of two masters plus a data node
gateway.expected_master_nodes: ${EXPECTED_MASTER_NODES:2}
gateway.expected_data_nodes: ${EXPECTED_DATA_NODES:1}
gateway.recover_after_time: ${RECOVER_AFTER_TIME:5m}
gateway.recover_after_master_nodes: ${RECOVER_AFTER_MASTER_NODES:2}
gateway.recover_after_data_nodes: ${RECOVER_AFTER_DATA_NODES:1}
http.cors.enabled : true
http.cors.allow-origin: "*"
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers: X-Requested-With, X-Auth-Token, Content-Type, Content-Length, Authorization, Access-Control-Allow-Headers, Accept

И, похоже, он правильно читает elasticsearch.yml, потому что керлинг адреса дает

HTTP/1.1 200 OK
access-control-allow-origin: *
content-type: application/json; charset=UTF-8
content-length: 518

{
  "name" : "elasticsearch-client-65459787c-mkjws",
...

Вот мой ReactiveBase компонент:

    app="amalfi/default2"
    url="http://elasticsearch-client:9200"
    headers={{
         'Content-Type': 'application/json',
    }}
>

Служба эластичного поиска называется elasticsearch-client.

При попытке получить доступ к нему через http (веб-сайт использует https), я получаю This request has been blocked; the content must be served over HTTPS. Но при использовании HTTPS я получаю "Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at mysite.com", но он должен разрешать соединения отовсюду из-за http.cors.allow-origin: "*", верно?

Странно то, что у меня проблемы с загрузкой в ​​ElasticSearch, но запросить его немного сложно ...

Я попытался установить точный адрес как http.cors.allow-origin: https://my-address-here.com, но он выдал ошибку ... Я также попробовал https.cors.allow-origin: /https?:\/\/localhost(:[0-9]+)?/ с теми же результатами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...