It is also doable with nignx as well, using multiple server {} blocks, and matching the proxy by server_name.
something like:
server {
listen 80;
server_name www.mysite.com;
location / {
proxy_pass http://localhost:4567/; #your rails app port
}
}
server {
listen 80;
server_name forums.mysite.com;
location / {
proxy_pass http://localhost:8080/; #your discourse port as seen by the host
}
}