I have the same situation, and the short answer is that I recommend one linode and use virtual hosting at the webserver level to handle the traffic.
I have 6 websites running on my Linode right now (and have for the past 5 years), 4 are Ruby / Rack apps, one PHP app, and one plain, static HTML app. Because the rack apps each run a different application instance, if one fails, the others stay alive.
The bigger concern for me is memory / swapping because of either higher than expected traffic volume or memory leaks. I recommend installing monit, and configuring it to restart processes if memory issues arise.