LINUX.ORG.RU
ФорумAdmin

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

 , ,


0

3

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

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

★★★★

Последнее исправление: gobot (всего исправлений: 3)
Ответ на: комментарий от Obezyan

Так HTTP модуль это не сторонний пакет, который через NPM устанавливается, он встроенный уже в ноду

Про геморрой с получением, например virtual hosts на одном порту

А что за проблема? Тупо берешь host и через express маршрутизацию разруливаешь. Поясни, что не так

проблемы школо-ддоса

Ну примеры будут или обсываться сюда пришел?

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

Да не, на самом деле хороший вопрос. Принципиальной разницы конечно нет, будет это nginx или нода, протокол http везде остаётся http. Но со временем окажется что какие-то проблемы nginx всё-таки решал, или хотя бы изолировал в отдельном процессе. Если в деплое прям кроме нгинкс и ноды вообще ничего больше нет, но наверное не так уж и нужен нгинкс.

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

Но со временем окажется что какие-то проблемы nginx всё-таки решал

...или не решал, а просто память занимал )... Мне кажется nginx ждет та же самая участь как апач со временем

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

Просьба всем яваскриптизерам, кто не понимает зачем nginx, встать кучнее чтобы обезьян мог обойтись одной тугой струёй для окропления так сказать.

Открываем первый попавшийся обзор проблем от OWASP, наверное, ноунеймы какие-то в сфере безопасности (гусары, молчать!) и там на первом месте внезапно - Denial of Service of HTTP Server (CWE-400). А главная рекомендация как победить - Use a reverse proxy server to receive client requests and send them to Node.js application. Это главный ответ зачем нужно ставить nginx защищать это однопоточное поделите. Есть и ещё причины, но они меркнут по сравнению с главной.

Я понимаю когда лисперы-кложуристы пытаются побороться с Обезьяном, или С++ животные, но вы то куда, мелюзга? Захлебнуться в струе не боитесь? :)

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

Сейчас уже модно traefik, он принципиально не занимается раздачей статики, но не ведёт себя упорото делая единственный резолв всех доменов на старте. В основном это http2/3/tls termination и L7 роутинг. Само собой, у каждого свои задачи, для хеловорлда это много.

neumond ★★
()

@Obezyan, зачем сайту малого бизнеса Nginx? Если 2 человека за час на сайт зайдут — уже хорошо.

Развлекаюсь расчетами быстродействия, беру пиковую нагрузку в 5 RPS. На самых упрощенных моделях распределений у меня выходит по 1000 пользователей в час.

Вот 5 примеров бизнесов на окраине крупного города:

  • Сайт СТО.
  • Сайт парикмахерской.
  • Сайт кондитерской.
  • Сайт магазина по продаже б/у орг. техники.
  • Сайт бригады строителей дачных домиков.

Нужен ли в каждом из этих проектов Nginx балансировщик? По моему нет. Сайт нужен, а балансировщик и многопоточность не нужна.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 3)
Ответ на: комментарий от neumond

Принципиальной разницы конечно нет, будет это nginx или нода, протокол http везде остаётся http.

Тут не поспоришь, зачем вообще все эти монстры? Вот что надо:

https://github.com/d12/Bash-HTTP-Server

И разницы никакой, протокол-то http и таковым он и остается.

Правда еще есть quick, http/2, grpc, ws и на каждом из них tls 1, 1.1, 1.2 и 1.3 и обращаться к сайту можно через любой из них, но кому какое дело, http все равно ведь остался http…

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

зачем сайту малого бизнеса Nginx?

Просто чтобы его не завалил школьник с backtrack kali Linux.

базовый конфиг nginx как кеширующего прокси гуглится за минуту и спасает от 90% базовых проблем с безопасностью в интернете.

В 2025м году стратегия неуловимого Джо уже не работает.

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

Ну статья какая то в бложике, дальше что? Cwe какие то...это классификация потенциальных проблем, типа сборник рассказов, созданный в США. Не аргумент это, конкретики 0

gobot ★★★★
() автор топика
Последнее исправление: gobot (всего исправлений: 1)
Ответ на: комментарий от Obezyan

базовый конфиг nginx как кеширующего прокси гуглится за минуту и спасает от 90% базовых проблем с безопасностью в интернете.

Да, спору нет.

Почитал я про модули противодействия DDos для Express, их задача ограничивать временное окно размером в минуты, чтоб слишком часто пароль не сбрасывали express-rate-limit.

Задача отбрасывать назойливые http соединения лежит на Nginx.

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

Ну и в чем разница между этим нодовским ограничителем частоты запросов и limit_req в nginx?

В языке реализации фильтра. express-rate-limit написан на JavaScript, работает дольше. Для блокировки вала http запросов от злоумышленника лучше использовать скомпилированный бинарник, а не интепретируемый скрипт.

  • фильтр NodeJS - для запутовшегося пользователя.
  • фильтр Nginx - для злоумышленника запустившего скрипт.
lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 1)

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

Если не интересна статика и вообще роутинг, то как минимум rate limit и бан по ip. У меня встречный вопрос: почему нет? Как будто это требует каких-то сверхусилий.

no-such-file ★★★★★
()
Ответ на: комментарий от lbvf50txt

О боже...ну и какая там разница в быстроте то будет, 0.01мс?

Да и вообще, этм модульки бесполезны при реальном ддосе, когда ботфермы на тебя натравливают, думаешь тебе этот req-limit спасет? Адреса один хер у всех запросов будут разные и все в итоге упрется во фронт: БД, чтение файлов, сетевые запосы

gobot ★★★★
() автор топика
Последнее исправление: gobot (всего исправлений: 3)
Ответ на: комментарий от s-warus

Чего там усложнять? Сейчас в данный момент через 2 прокси работает(CF -> Nginx -> node), но подумываю выкинуть лишнее звено

gobot ★★★★
() автор топика
Последнее исправление: gobot (всего исправлений: 1)

Ну модульки там всякие типа connlimit, но это и через iptables можно…

hhtp2 на iptables не получится. Тебе на http уровне не предусмотренное количество коннектов просунут.

Вроде выше упоминали, можно на 2 готовых докеровских контейнерах сертификаты с автообновлением слепить.

Еще можно кеш картинок из монги на нем слепить, если балуешься таким. Ну и статика раздается веселее.

Дело вкуса и ресурсов, в общем. Если сайтег не критичный и никому не нужный - можно и голой жопой выставить без проблем. В продакшене часто проще https с его чешуей через nginx завернуть.

Vit ★★★★★
()

Тред просто какая-то феерия.

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

Ну не мой, зачем вообще тред создавать, больно почему-то от него.

masa ★★★
()