Формально, в данной схеме можно исключить nginx.
Еще , если хорошенько подумать, можно было бы избавиться и от django (чем занимается django если по факту нужно обслуживать api для приложения, но разработчикам бакэнда виднее).
Главная причина, почему 'обычно' именно так делают, это вопросы безопасности и простоты разработки.
* nginx (или apache), обычно используют как сервер
- который обслуживает ssl шифрование (сертификаты для https), обслуживание простых логов (сбор статистики например) и защита от одного типа ддос (уже редкий случай).
spoilerдержит воркеров на случай, когда злоумышленник открывает соединение но ничего в него не пишет и не читает (если бы не было nginx сервера, то бакэнд тратил бы кучу ресурсов на обслуживание таких зомби-соединений), к сожалению если правильно слать нужные запросы и забирать хотя бы байт ответа, то нагрузка на бакэнд все же пролезет.
- очень эффективная отдача статичных файлов с диска
Веб сервера вылизаны на столько, что написать реализацию простой отдачи файлов лучше наверное уже не возможно, поэтому для статических файлов (картинки, стили, видеофайлы) выгоднее и проще отдавать это на откуп nginx (в некоторых случаях можно вообще обойтись только веб сервером, тупой пример basic http auth + отдача статики)
- у веб серверов обычно есть продвинутый функционал с помощью расширений, этим редко пользуются (хотя, все уже привыкли к .httaccess у apache, а ведь это его расширение) но часть функционала можно очень эффективно и просто перенести на nginx/apache
* и саму базу данных наружу не открывают, из-за того что в ней нет механизмов защиты от ddos, практически никакой... плюс лишняя защита от брутфорса паролей или глупых админов, делающих пароли простыми.