Каковы преимущества использования интерфейса Angular 2 на nginx?

Архитектура нашего проекта включает Angular 2 во внешнем интерфейсе и Java EE, работающую на Tomcat (или JBoss). На данный момент у нас также есть интерфейс, работающий на Tomcat.

В чем преимущества запуска Angular 2 на отдельном сервере nginx, есть ли в этом смысл?


person Alex    schedule 06.01.2017    source источник


Ответы (1)


Использование сервера nginx имеет смысл. Приложение Angular состоит из статических файлов — html, js, изображений и т. д. Когда пользователь вводит URL-адрес вашего приложения, оно должно быть сначала загружено в браузер, и только после этого оно будет запрашивать динамические данные.

Если вы развернете свое приложение Angular внутри WAR (или расширенного) под Tomcat, каждый пользователь вашего приложения будет делать запрос к Tomcat только для того, чтобы увидеть целевую страницу приложения. Tomcat и другие серверы приложений создавали бы поток для каждого запроса, который занимает память (сервлеты 3.0 немного помогли в этом отношении). Если у вас тысячи пользователей, ваш экземпляр Tomcat может просто умереть.

Размещая статические ресурсы под nginx (у него нет больших накладных расходов на каждый запрос), вашему Tomcat не нужно выполнять какую-либо работу, пока приложение не будет загружено в браузер и не сделает первый запрос данных.

Еще одним преимуществом является то, что вы можете настроить балансировку нагрузки на сервере nginx, поэтому он будет перенаправлять запросы на один из экземпляров Tomcat в кластере.

person Yakov Fain    schedule 07.01.2017