act_as_ferret с несколькими хостами
-
20-09-2019 - |
Вопрос
У меня все работает с Ferret и act_as_ferret для разработки (или localhost DRb), но я не могу заставить работать развертывание на нескольких хостах.Все удаленные системы получают ECONNREFUSED при доступе к порту.На сервере Ferret демон прослушивает только локальный хост, несмотря на то, что в конфигурации в качестве хоста указано полное доменное имя.
Я также попытался переключиться на сокет UNIX для обмена данными между демоном Ferret DRb и кодом приложения, но он тоже получил ECONNREFUSED.(Сокет доступен для всех компьютеров через монтирование NFS).
Есть ли лучший способ сделать это или мне следует искать другой поисковый индексатор?Спасибо.
Решение
Я выяснил, что если адрес изменить на druby://0.0.0.0:port, он будет прослушивать все IP-адреса на сервере DRb;однако он не обеспечивает никакой защиты от внедрения плохого кода в процесс DRb.
В принципе, не используйте хорька.Я использую Xapian с act_as_xapian для RoR.Он поддерживает чтение нескольких процессов, но только одну запись, поэтому это автономный индекс.Однако я смогу использовать один и тот же индекс между несколькими серверами через общую файловую систему (NFS).
Другие советы
Узнайте о подводных камнях act_as_ferret, на помощь придет DrbServer.
http://www.subelsky.com/2007/03/pitfalls-of-actsasferret-with-drbserver.html
у меня сработало очень хорошо.Единственное, что я бы добавил, это обязательно установите значение хоста там, где бегает хорек.