Подключение к Cayley, обслуживающему через localhost
Я следовал руководству "Начало работы" в документации Cayley и установил Cayley на своем удаленном сервере:
Начало работы: https://github.com/google/cayley
Серверная ОС: CentOS 7.2.1511
Я добавил Кейли в свой $ PATH:
echo $PATH
:
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/csse/cayley/src/github.com/google/cayley
Вот мой конфигурационный файл на /etc/cayley.cfg
{
"database": "leveldb",
"db_options": {
"cache_size_mb": 2,
"write_buffer_mb": 20
},
"db_path": "~/cayley/src/github.com/google/cayley/data/testdata.nq",
"listen_host": "127.0.0.1",
"listen_port": "64210",
"read_only": false,
"replication_options": {
"ignore_missing": false,
"ignore_duplicate": false
},
"timeout": 30
}
Я служу Кейли через http, просто делая:
cayley http
и выходы терминала:
Cayley сейчас слушает 127.0.0.1:64210
На моей основной машине (Mac OSX 10.10.5 Yosemite) я использовал npm для установки cayley
Пакет и написали тест:
testconnection.js
var cayley = require('cayley');
var client = cayley("137.112.104.107");
var g = client.graph;
g.V().All(function(err, result) {
if(err) {
console.log('error');
} else {
console.log('result');
}
});
Однако, это терпит неудачу, когда я запускаю это: node testconnection.js
ошибка: ошибка: неверный URI "137.112.104.107/api/v1/query/gremlin"
Я хотел бы подключиться к Cayley и изменить базу данных из моего теста. Я нашел отличное место, полное информации Кейли:
А также соответствующие документы Кейли:
- Обзор Док
- Конфигурация Doc
- HTTP API Doc
И пост на stackru:
- Cayley DB пользователь и защита паролем через HTTP-соединения
Но я изо всех сил пытаюсь найти способ соединить Cayley (на моей удаленной машине) с моей локальной машиной. Я хотел бы соединиться с npm, если это возможно, но я открыт для других вариантов. Куда я иду не так?
Правка № 1
Я добавил "http: //" к моему IP, так что теперь он читает http://137.112.104.107
, В этот момент я решил еще одну проблему, выполнив
cayley init --config=/etc/cayley.cfg
как упомянуто автором здесь
Я также удалил listen_post
а также listen_port
из моего конфигурационного файла (сначала по отдельности, потом по обоим), но все равно socket hang up
ошибка. Вот распечатка client
из тестового скрипта:
Client {
host: 'http://137.112.104.107',
request:
{ [Function]
get: [Function],
head: [Function],
post: [Function],
put: [Function],
patch: [Function],
del: [Function],
cookie: [Function],
jar: [Function],
defaults: [Function] },
graph: Gremlin { client: [Circular], query: [Function] },
g: Gremlin { client: [Circular], query: [Function] },
write: [Function: bound ],
delete: [Function: bound ],
writeFile: [Function: bound ]
}
1 ответ
Ваш сервер Cayley прослушивает 127.0.0.1 / localhost и поэтому недоступен с другой машины. Чтобы получить доступ к нему с виртуальной машины или другого компьютера в вашей сети, он должен быть привязан к доступному интерфейсу.
Если вы настраиваете хост: 0.0.0.0 и проверяете, какой IP-адрес вашей сети (я полагаю: 137.112.104.107) и подключаете его, он должен работать, или вам нужно открыть его или перенаправить порт на брандмауэр (в зависимости от вашей сети).