Question

I've got everything working with ferret and acts_as_ferret for development (or localhost DRb), but I can't get my multiple host deployment working. All of the remote systems get ECONNREFUSED when accessing the port. On the ferret server, the daemon is listening on localhost only despite the configuration listing the FQDN as the host.

I also tried switching to a UNIX socket to share data between the ferret DRb daemon and the app code but it too gets ECONNREFUSED. (The socket is available to all of the machines via an NFS mount).

Is there a better way to do this or should I be looking for another search indexer? Thanks.

Was it helpful?

Solution

I did figure out that if the address is changed to druby://0.0.0.0:port that it would listen on all ips on the DRb server; however, it doesn't provide any protection against bad code injection into the DRb process.

Basically don't use ferret. I'm on to Xapian with acts_as_xapian for RoR. It supports multiple processes reading but only one writing, so it's an offline index. However, I will be able to make use of sharing the same index between multiple servers via the shared file system (NFS).

OTHER TIPS

Check out Pitfalls of acts_as_ferret, with DrbServer to the rescue

http://www.subelsky.com/2007/03/pitfalls-of-actsasferret-with-drbserver.html

worked pretty well for me. The only thing I'd add is be sure to set the host value to where you're ferret is running.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top