Общая мысль такая: если ты хочешь настройку того, как твой сервер торчит в интернет, отделить от приложения, которое пилишь -- приложение живёт отдельно, смотрит на локалхост на любом порту, в сеть смотрит настроенный nginx, nginx работает как реверс-прокси для приложения -- входящие запросы на 80-й редиректит по заданным правилам твоему приложению. По дороге, как выше написали, может хттпс в хттп превратить.
Если надо запустить несколько апп -- будет один конфиг nginx, который будет работать как реверс-прокси для двух апп. Его можно настроить так, что, к примеру, запросы на
foo.example.org:80 идут на localhost:3010, запросы на
bar.example.org:80/baz -- на localhost:5020. У меня так крутится на моём дроплете несколько отдельных приложений. Сами аппы уже пофиг, как работают -- там может быть хоть локально запущенный жвм с кейтором, хоть докер-конткйнер, хоть что угодно.
Можно из него выжать намного больше, но на старте оно точно не нужно.