Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Resque to connect to Redis with AUTH

Tags:

redis

resque

Need some help connecting Resque Web UI (Rack config.ru) to a Redis server with AUTH

Using Resque + Unicorn + Nginx and installed most using apt-get install (Debian) and gem install

So basically Unicorn loads up resque-web (via Rack) using the standard config.ru

http://etagwerker.wordpress.com/2011/06/27/how-to-setup-resque-web-with-nginx-and-unicorn/

#!/usr/bin/env ruby

# Put this in /var/www/resque-web/config.ru

require 'logger'

$LOAD_PATH.unshift ::File.expand_path(::File.dirname(__FILE__) + '/lib')
require 'resque/server'

Resque::Server.use Rack::Auth::Basic do |username, password|
    password == '{{password}}' # password
end

# Set the RESQUE_CONFIG env variable if you’ve a `resque.rb` or similar
# config file you want loaded on boot.
if ENV['RESQUECONFIG'] && ::File.exists?(::File.expand_path(ENV['RESQUE_CONFIG']))
    load ::File.expand_path(ENV['RESQUE_CONFIG'])
end

use Rack::ShowExceptions
run Resque::Server.new  

I'm trying to find out how to connect this to a Redis server with AUTH per the documentation here: http://redis.io/topics/security (basically in /etc/redis/redis.conf)

This rack configuration seem to only connection to a "vanilla" Redis server using defaults (localhost with standard 6379 port) -- how do I specify the Redis connection so I can pass the user/pass in the format below

redis://user:PASSWORD@redis-server:6379

I've tried using ENV['RESQUE_CONFIG'] to load up a resque.rb file

require 'resque'

Resque.redis = Redis.new(:password => '{{password}}')

this gets pulled via /etc/unicorn/resque-web.conf

# Put this in /etc/unicorn/resque-web.conf

RAILS_ROOT=/var/www/resque-web
RAILS_ENV=production
RESQUE_CONFIG=/var/www/resque-web/config/resque.rb

but it's still not really working


BTW, everything works without the Redis AUTH and just using the "vanilla" localhost Redis connection

like image 939
Chris Go Avatar asked Jan 14 '23 11:01

Chris Go


1 Answers

Try this

redis_client = Redis.new(:url => "redis://user:PASSWORD@redis-server:6379")

and then do this

Resque.redis = redis_client

Hope this help

like image 73
Viren Avatar answered Jan 21 '23 20:01

Viren