Обратный прокси-сервер - это сервер, который находится между вашим реальным приложением (rails) и браузером клиента и извлекает файлы от имени клиента. Для настройки обратного прокси-сервера необходимо только настроить сервер между клиентом и приложением; поскольку вы уже используете nginx, вы также можете использовать его в качестве обратного прокси.
1 вот ссылка на SO: nginx и обратный прокси, и веб-сервер
2 Вы можете настроить обратный прокси-сервер в том же экземпляре или нет. Если это другой блок или процесс, вам нужно будет передавать динамические запросы из одного блока в другой.
4 Я думаю, это довольно просто, если вы знакомы как с HTTP, так и с настройкой этих серверов. Мне было трудно с Apache только потому, что я пропустил косую черту