Подключение к 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 и изменить базу данных из моего теста. Я нашел отличное место, полное информации Кейли:

http://%20https://docs.google.com/presentation/d/1tCbsYym1kXWWDcnRU9ymj6xP0Nvgq-Qhy9WDmqWcM-o/edit#slide=id.g3776708f1_0319

А также соответствующие документы Кейли:
- Обзор Док
- Конфигурация 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) и подключаете его, он должен работать, или вам нужно открыть его или перенаправить порт на брандмауэр (в зависимости от вашей сети).

Другие вопросы по тегам