Физическая архитектура веб-приложения может отличаться от логической, видимой через браузер. В основном это достигается путем размещения переднего веб-сервера (например, apache с mod_proxy, но это может быть любой другой модер-веб-сервер, поддерживающий обратное проксирование) и подключения серверов веб-приложений (java / python / любой другой) по разным путям (например, / app1 для java app, / app1 / subapp для приложения на python, / app2 для приложения php). Конечно, эти приложения по умолчанию работают независимо, поэтому, если вы хотите передать некоторые данные между собой, вам необходимо установить связь между ними (прямой сокет-сокет или косвенный с некоторым промежуточным программным обеспечением или базой данных).
В целом это очень широкая тема, поэтому, если вам интересно, попробуйте использовать несколько основных ключевых слов: серверы приложений, балансировка нагрузки, обратный прокси-сервер, перезапись URL-адресов.