Я потратил 2 дня и много искал на stackoverflow и многих форумах, но не смог заставить его работать и все еще запутался. Я буду держать вещи простыми.
Я использую ElasticSearch для базы данных моего веб-приложения Laravel (PHP Framework) в качестве бэкэнда.
Elasticsearch развернут на экземпляре Google Compute Engine, то есть на сервере UBUNTU 16.0 LTS.
Я хочу сделать RESTful-запрос с моего ноутбука наasticsearch на протяжении всей разработки. (я знаю, что я могу установитьasticsearch локально, но это не проблема)
, что означает, что из Ssh Cli моего сервера Ubuntu, когда я делаю 'curl -X GET localhost:9200'
, он прекрасно отвечает, что работаетasticsearch. * 1010 т.е. *
{
"name" : "T1Xfr06",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "NqdJol0ZQ6imGOZxIVvnNA",
"version" : {
"number" : "6.3.0",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "424e937",
"build_date" : "2018-06-11T23:38:03.357887Z",
"build_snapshot" : false,
"lucene_version" : "7.3.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
но я хочу сделать с моего ноутбука curl -X GET
'http://MY_Server's_PUblic_IP:9200'
но он не отвечает.
Вот то, что я пытался заставить это работать.
- IN
sudo nano /etc/elasticsearch/elasticsearch.yml
, я изменил network.host, как network.host: 0.0.0.0
, а затем sudo systemctl restart elasticsearch
, о котором везде было сказано, что трафик может проходить со всех IP-адресов, но он по-прежнему не отвечает на мой запрос на скручивание ноутбуков!
- Я проверил и отключил все настройки брандмауэра UFW, мой
sudo ufw
status
равен Status: inactive
(Это означает, что каждый IP-адрес может подключаться правильно?)
- Просто чтобы убедиться, что мой
curl -X GET 'http://MY_Server's_PUblic_IP:9200'
законный поступок. я установил nginx на свой сервер UBUNTU, а затем сделал curl -X GET 'http://MY_Server's_PUblic_IP:80'
со своего ноутбука. и он сразу отвечает!
После всего этого, когда я делаю $ curl -X GET 'http://35.237.107.165:9200'
с моего ноутбука, ответ curl: (7) Failed to connect to 35.237.107.165 port 9200: Timed out
Я новичок, и я знаю, что есть много вещей, о которых я не знаю. что мне не хватает? почему я не могу получить доступ кasticsearch, установленному на сервере через http
, с моего локального компьютера? У меня вообще нет настроек брандмауэра.
Обновление: почему в моем файле yml нет параметра network.bind_host?
#---------------------------------- Cluster -----------------------------------
#Use a descriptive name for your cluster:
#
#cluster.name: my-application
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
#node.name: node-1
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /var/lib/elasticsearch
#
# Path to log files:
#
path.logs: /var/log/elasticsearch
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
#bootstrap.memory_lock: true
#
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# Elasticsearch performs poorly when the system is swapping the memory.
#
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 0.0.0.0
#
# Set a custom port for HTTP:
#
http.port: 8080
#
# For more information, consult the network module documentation.
#
# --------------------------------- Discovery ----------------------------------
# Pass an initial list of hosts to perform discovery when new node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
#discovery.zen.ping.unicast.hosts: ["35.237.107.165"]
#
# Prevent the "split brain" by configuring the majority of nodes (total number of master-eligible nodes / 2 + 1):
#
#discovery.zen.minimum_master_nodes:
#
# For more information, consult the zen discovery module documentation.
#
# ---------------------------------- Gateway -----------------------------------
#
# Block initial recovery after a full cluster restart until N nodes are started:
#
#gateway.recover_after_nodes: 3
#
# For more information, consult the gateway module documentation.
#
# ---------------------------------- Various -----------------------------------
# Require explicit names when deleting indices:
#action.destructive_requires_name: true