Mihail
nginx это веб сервер его с нодой нельзя сравнивать
Он может раздавать уже собранный фронт, так обычно и делают
Pavel
Потому, что у них обыски в офисе сейчас.. им не до этого 😅
Андрей
Что такое функционал ноды?
Александр
В принципе может, статику можно и нодой раздавать, но есть подозрения что nginx в этой роли эффективнее, ну и главное что nginx это не просто раздавалка статики, это фитчастый reverse proxy с кучей возможностей
Александр
Александр
В разрезе тематики данного чата нода либо используется только для сборки приложения либо ещё работает в качестве сервиса для server side рендеринга
Александр
И обычно стоит как раз таки nginx который проксирует запросы к ноде, попутно занимаясь кешированием, балансировкой нагрузки и бог его знает чем ещё
Александр
Часто пишути бекенд сервисы на node целиком, все бывает. Не понятно о чем конкретно ваш вопрос ?
Ivan
Nginx умеет раздавать статические файлы и перенаправлять запросы. И всё. Нода — платформа, которая позволяет запилить полноценный бэк, который может ходить в базы, общаться с другими бэками и рендерить Html динамически.
Ivan
Обычно в тематике реакта нода выступает в виде SSR-машины, а в базы ходит «настоящий» бэк. А спереди, перед нодами, настоящими бэками и всякой серверной херотой ставят nginx, так как он шустро распределяет запросы.
Ivan
Нода незаменима только если нужен SSR
Александр
Завист от того что там у вас, если статический сайт, то не нужна она, разве что для ssr
Александр
Backend на node если написан то незаменима :)
Ivan
Если вы про клиентское приложение — нет, с ним общение происходит по сетевым протоколам и вообще не важно, что на бэке.
Александр
Ну тогда в вашем случае нода нужна разве что для ssr, если это не нужно то и нода не нужна
Roman
gem вебпакер вкручиваешь и все, нода только для сборки
Александр
Почитайте уже про то что такой сборка современного js приложения, нода там нужна только для сборки
Ivan
Мы сейчас говорим про работу приложения. Npm нужен на этапе разработки и сборки, не в проде.
Ivan
Херню он спизданул, прости господи
Roman
нужно разделять наличие ноды на сервере (для сборки) и запущенный app-server на ноде
⩔wein
Для сборки нужна
Roman
сборка бывает и на проде делается при деплое. основное различие это наличие чего-то перманентно запущенного на ноде
Roman
если бек на рельсах и если не нужен сср и если сборка происходит на дев-машине и готовые ассеты пушатся напрямую - то нода не нужна
в любом другом случае - нужна
Roman
вебпак без ноды не работает да. один js css может быть ок, в зависимости от задач
Daniil
GG
Один жс файл можно просто бабелем транспилить, а стили ксс препроцессором из консоли точно так же. Так что тут можно без вебпака, в данном случаи от него пользы - 0
Roman
да. часто делают так что под каждый отдельный "переход" делают свой js/css файл
Daniil
Стараться не давать пользователю сразу то, что он не факт увидит. В данном случае, как ты сказал, js/css
Daniil
Раставляй хеши для твоих js/css файлов.
https://webpack.js.org/guides/caching/
Daniil
И в чем поинт выпылить ноду? У вас же спа? Значит сср скорее всего, раз сайт новостной
Daniil
Ну выпилите вы ее, а дальше не подумали что делать? Ладно гугл там уже по слухам нормально без сср индексирует. Если у вас СНГ аудитория, то есть всякие Яндексы. Да банально шаринг тот же
Daniil
Анализируйте проблему, почему медленно сср отрабатывает, а не рубите его
Daniil
И точно ли сср является проблемой?
Дмитрий
Ну так оно рендерится не на клиенте а на сервере просто. Так что да, моментально отдаваться не будет, разве что с кешом
Daniil
Сколько людей вы обрабатываете в сутки ?
Daniil
Сколько серверов ?
Daniil
Врзможно вам стоит в начале решить и узнать мощности сервера. Если что добавить ещё один и проверить повторно ttfb
Daniil
Так же посмотрите и скажите, вы используете renderToString или renderToNodeStream на стороне сср
Ivan
Пахнет koa
Тимофей 🛴
Daniil
Рендер реакт в хтмл в виде строки.
Daniil
Если не ошибаюсь, с сср давно уже не работаю
Daniil
renderToString для прод билда?
Ivan
Тут сервер строит виртуальный дом приложения, потом превращает в реальную строчку Html и отдаёт на клиент.
Ivan
А koa — это веб-сервер
Ivan
Daniil
Это не оптимально?
Не уверен что это будет лучше чем renderToNodeStream который в 16 версии появился
Daniil
Надо в общем читать, не помню уже перформансе различия
Daniil
Тогда через renderToNodeStream подгружали постепенно, а favicon + критикал цсс отдавали сразу. Немного игрались с сервер пушем
Daniil
Насколько помню основное отличие в readble streams
Daniil
Поэтому было нечто такое, но это не точно:
const stream = renderToNodeStream(element);
await pipe(
stream,
ctx.res,
...
);
Ivan
Двумя словами — выпилите ноду и будет совсем херово. Нужно разбираться и оптимизировать.
Ivan
В вашем случае нода нужна.
Daniil
Тебе скорее всего сказали не то, что стоит тыкать в проблеме ttfb. Вырубив ноду как сср вы возможно решите проблему. Но появятся новые связаные с индексацией
Daniil
Daniil
Вроде у вас 250к в сутки и получается ты один который отвечает за клиент с сср?
Ivan
Помогай вам бог
Lesyk
хочу при создании в стейт засунуть матрицу значений, которая будет постоянно меняться, подскажите как правильно
Sergey
Lesyk
вручную значения ниписать - значений много и не оч правильно
Sergey
This.Setstate({matrix: getMatrix()})
Lesyk
Lesyk
Sergey
это в рендере?
https://reactjs.org/tutorial/tutorial.html
Крестики-нолики и есть твоя матрица
Maxim
всем привет вопрос такой почему через когда я загружаю build на сервер не потключаються иконки которые потключаюсться в css локально все работает ошибки в консоли get путь net::ERR_ABORTED 404 (Not Found)
Lesyk
Anonymous
Maxim
лоакльно все работает и даже после сборки запускаю тоже все ок именно на серевере прооблема
Maxim
Arkadzi
Помогите мне это исправить
Я с таким не сталкивался, тут уж погугли
Похоже, он просто не соображает как строить пути, потому нужны переменные окружения, которые на бою будут подставлять вместо локального хоста урл твоего сайта
Dmitriy
Daniil
Anonymous
Можно ли юзать firebase Для серьезных проектов? Или это все же для обучения
Oleg
Кто знает почему в fetchProducts второй параметр undefined хотя я передаю единичку