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
()