LINUX.ORG.RU
ФорумAdmin

Ставить ли nginx или наружу node?

 , ,


0

1

Нужно ли ставить поверх бэка nginx или голой жопой node express выставлять?

Давно надоело корявые конфиги правть, где тупо нет if/else. Да и вообще, для чего он? Ну модульки там всякие типа connlimit, но это и через iptables можно...что еще...ну логи...что еще может nginx что не может node/http/https модуль?

★★★★

Последнее исправление: gobot (всего исправлений: 3)

разумеется. твоя однопоточная нода не сможет в кучу коннектов, для этого нужен инженкс. у которого есть и евент и многопоток. да и статику и кэш и логи и ссл, короче долго объяснять, ставь он необходим. без него ниче работать не будет.

antech
()
Ответ на: комментарий от gobot

Не ставить nginx конечно легче, но речь шла про то, что nginx на сишечке сможет отдать больше запросов (на статике), чем экспресс на ноде. Да и терминировать ssl он будет эффективнее. Но если это твой личный хелловорлд, который непонятно выстрелит или нет, то можно не парится.

goingUp ★★★★★
()
Ответ на: комментарий от antech

А куча конектов это какая куча? Ну 50 картинок загрузить одновременно. Для этого есть keep-alive. Потом кеш браузера. В этом вообще проблем не вижу. А что еще, какие конекты? Вебсокет? Там 1000 хватит, но за это уже сокет отвечает, тут ограничение на уровне ос...

А ssl что? Можно подробнее? Что с ним не так?

gobot ★★★★
() автор топика
Ответ на: комментарий от goingUp

больше запросов (на статике)


Пока статика меньше всего заботит. Это миллионы запросов в сек наверное нужно иметь, чтобы за это переживать. Тут рыбка помельче намного

gobot ★★★★
() автор топика

Да и вообще, для чего он?

Для пхп и прочего, что самостоятельно не умеет в сложную логику. В ноде есть хттп-сервер либой/модулем, поэтому тут отдельный вебсервер снаружи не нужен.

anonymous
()
Ответ на: комментарий от goingUp

nginx на сишечке сможет отдать больше запросов (на статике), чем экспресс на ноде

Больше запросов/быстрее в контексте хттп(да и ноды тоже, хоть прикрытой сишечкой, хоть нет) - это рассуждения экспертов с дивана.

anonymous
()
Ответ на: комментарий от KivApple

Если только балансировка...но я пока до этого не дошел

А https то в чем плюс? Ну если только без перезапуска...но...слабый аргумент. Раз в 3 месяца даже и полезно перезапустить, так сказать дать просраться, очиститься, от памяти демон http

gobot ★★★★
() автор топика

Вероятно проще считать, что это про разграничение ответственности. Слова nginx и net.core.somaxconn - налево. Слова node и javascript - направо. Для разных людей и разных работ, так сказать.

Toxo2 ★★★★
()
Ответ на: комментарий от antech

Да не, вера это другое. Я не сомневаюсь что сишка отдаст больше статики, но это критично для гугла может быть, но не в моем случае. Больше волнуют вопросы секурности, поддержки протоколов(ну хз,TLS 1.3, http 2.0 что там еще)

gobot ★★★★
() автор топика

я всегда ставлю поверх nginx, хотябы ради холявных сертификатов, и потом на node, или докер натравливаю, http2 упрощается, но его бы не использовал, 5 мес. назад одним запросом досили, отключение http2 помогло, хотя говорят nginx по фиксили

s-warus ★★★
()
Ответ на: комментарий от gobot

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

antech
()

Уже всё сказали - nginx гораздо быстрее и фичастее. Терминирование https, балансировка нагрузки, отдача статики, простейший WAF (типа ограничений по ip), редиректы на разные беки. Плюс удобный конфиг.

У меня nginx проксирует трафик и на бэк (fastapi), и на фронт (другой nginx с vuejs). На нем же авторизация, генерация сертификатов и терминирование https.

skyman ★★★★
()
Ответ на: комментарий от gobot

вообще всмысле секурности мне нода нравиться намного больше. т.к код пишешь сам. и ничего кроме того что сам написал там нет. в откличии от готового продукта где нет уверености в «недокументированых» возможностях, а так в прямоте работы документированых. к тому же там километровые трактаты о том что и как, быстрее написать свое чем изучать чужое, а без полного понимания опять таки нет уверенности что все правильно сделал.

antech
()
Ответ на: комментарий от antech

в ноде есть воркеры, но это вариация на тему браузерных вебворкеров, те как бы треды, но через жопу, те можно говорить, что нода многопоточна, а можно и однопоточной называть, обв утверждения верны

rtxtxtrx ★★
()
Ответ на: комментарий от firkax

О боже. Причем тут джаваскрипты? Nodejs, в частности его модуль HTTP\HTTPS написан на ЦЫ\ЦЫ++. Express это фреймворк поверх этого модуля. Да, он написан на javascript. В этом вся и гибкость (middleware, routes etc)

Очевидно

Не очевидно. Поясни

поддержкой чего угодно

Например? Что поддерживает nginx, чего не поддерживает Node\HTTP?

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

ну не хочешь, не надо, просто nginx это в первую очередь прокси, легко сделать виртуалные хосты, несколько доменов на одном ip, или разделение https://вася это одно, а https://вася/api это другое, много головной боли снимает.

s-warus ★★★
()
Ответ на: комментарий от s-warus

nginx, хотябы ради холявных сертификатов

какая связь между nginx и letsencrypt? В том, что есть плагин certbot --nginx? Слабый аргумент...

и потом на node, или докер натравливаю

я это годами делал, больше по привычке. Сейчас не знаю, стоит ли это вся возня. Весомых аргументов тут так никто и не сказал... Ну да ладно, поставлю голой жопой node\http, а там видно будет

gobot ★★★★
() автор топика
  • Поддержка HTTP2/3, превращение их в HTTP1 внутри контура
  • HTTPS/TLS
  • Накопление запроса от медленных клиентов, не уверен насколько это актуально в ноде, но в синхронных обработчиках это обязательно
  • Хоть какой-то экран от взлома голой жопы всякими крафтами заголовков, переполнениями буферов и таймаутами. Никакой фреймворк так хорошо не тестировался на эту тему как нгинкс
  • Быстрее раздаётся статика, порой даже средствами ядра, через sendfile
neumond
()
Ответ на: комментарий от neumond

Поддержка HTTP2

В ноде тоже есть хотя мне и не надо пока...

HTTPS/TLS

И? Что TLS? Что HTTPS?

Хоть какой-то экран от взлома голой жопы всякими крафтами заголовков, переполнениями буферов и таймаутами

Можно пример?

Никакой фреймворк

Причем тут фреймворк?

Быстрее раздаётся статика

ну статику да, можно nginx заюзать, но не критично в моем случае, поэтому слабый аргумент

gobot ★★★★
() автор топика
Ответ на: комментарий от gobot

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

neumond
()

Господа, не мешайте естественному отбору, чем больше идиотов будут оставлять ноду голым задом наружу, тем меньше идиотов будут оставлять ноду голым задом наружу…

Obezyan
()