Rails – How to Host Multiple Sites Using Passenger and VirtualHosts

apache-2.2phusion-passengerruby-on-railsvirtualhost

What I am trying to do is run multiple Rails apps from a server machine at work. We dont have multiple hostnames for the box. We want to host some rails apps on it as well as our php apps. Currently users can connect http://computername/app/.

How can I host multiple Rails apps and keep this structure? It appears Passenger requires the use of VirtualHosts but I only have localhost:80.

Is it possible to host multiple Rails apps on a single VirtualHost?

The VirtualHosts have the DocumentRoot directive, is there a way for me to specify which hostname directory that is listened to on? ie /computername/blah/

Hope that was clear. Thanks.

Best Answer

I would suggest to also read about the following directives, the use of which will give you extra flexibility in your setup:

  • PassengerEnabled: allows to enable/disable passenger in a specific context (main server/virtualhost/directory), so that you can have areas that are served by another web application if needed.
  • PassengerAppRoot: allows you to easily re-use the source of a web app for several instances of the application.
  • RailsBaseURI: allows you to run the web app in a sub directory.

Of course these are just pointers. I highly recommend reading the whole documentation for all the details.

Related Topic