CruiseControl.rb with Apache as front-end
I run CruiseControl.rb for a few personal projects on a server on the home LAN. CCrb comes with its own web server running by default on port 3333, but I wanted to use my Apache server as a front-end. Doing this through mod_proxy is normally pretty easy. However, I quickly get into trouble with the absolute URLs coming from CCrb as it assumes it is running at the root URL. After some head scratching I find an environment variable for Rails called RAILS_RELATIVE_URL_ROOT, but setting it doesn’t change the URLs at all. More head scratching. I finally find the solution! Below is the necessary configuration.
- Apache VirtualHost configuration
-
<Proxy *> Order deny,allow Allow from all </Proxy> ProxyRequests off ProxyPass /cc/ http://localhost:3333/ ProxyPassReverse /cc/ http://localhost:3333/ - CruiseControl.rb config/environments/production.rb
-
ActionController::AbstractRequest.relative_url_root = "/cc"

Leave a reply