Пусть у меня фронт на одном сервере, бэк на другом. Как бы мне это корректно организовать?
У меня есть два варианта реализации веб-приложения:
Есть сервер, где работает бэкенд. Отдельно есть сервер, где лежит фронт. При этом, этот сервер, где фронт, он, как бы, просто хостит дист джаваскриптового приложения как статику. Я имею в виду, что там нет никакого серверного кода. Пусть это будет какой-нибудь nginx например. Само джавоскриптовое приложение ходит на сервер бека за данными. На сервере бека настроены Cors. Короче говоря, хостимся на одном хосте, а за данными ходим на другой. Прям из браузера.
Второй вариант подразумевает тоже два сервера. Но во втором варианте запросы с фронта идут на сервер фронта, который в свою очередь проксирует все на сервер бека.
Прошу описать, какие преимущества/недостатки есть у того и другого подхода.
Ответы (1 шт):
Я бы рискнул сказать, что второй подход в плане применения является доминирующим. Его преимущества: Он очен прост. Проксирование настраивается в nginx довольно элементарно. Кроме того, Вы сразу получаете кеширование GET - запросов и кучу других плюшек, в котрых nginx действительно хорош - таких, как SSL - сертификаты на фронте, сжатие трафика на фронте и т.п. При этом бэк может быть очень "глупым" и не бояться этого: плохие запросы от злобных хакеров к нему всё равно не придут, фронт отфильтрует. А в ряде случаев фронт прячут ещё и за клоудфлером каким нибудь.
Собственно, единственным преимуществом перврго подхода можно назвать относительную - относительную! - независимость фронта и бэка. Всё остальное при таком подходе - это исчезновение тех преимуществ, которые я описал в первом параграфе.
Как говорил Иа-Иа - "по моему, так". Еще кто то что то добавит?