Задать вопрос
@Scorpiored88

Для чего нужны Nginx или Apache и что выбрать?

Всем доброго!
Прочёл я поверхностно как работает nginx и apache... (в одного не блокируемые сокеты, другой мульти процеснный....)
Вот пишу я какой-то веб сервис с бекендом на node или python, у каждого из них есть свои веб сервера, знаю что нужно их прокидывать через nginx, apache или fastcgi, но не совсем понимаю почему и для чего.... знаю, что так правильно.... Не хочу сильно углубляться в то как они работают ( пока что то, так как сейчас учу python и node)
Не могли бы вы быть столько любезны, и обьяснить зачем так делать и какой сервер когда лучше использовать?
  • Вопрос задан
  • 13693 просмотра
Подписаться 2 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 4
megafax
@megafax
web-программист
В своей практике применяю такой подход:
nginx служит для проектов на php/nodejs/etc прослойкой, которая распределяется запросы - на статику (картинки, css, js) или динамику (html). Статику отдает самостоятельно, а вот динамикой уже занимается apache/nodejs/etc. Причем "наружу" смотрит только nginx, все остальное слушает только 127.0.0.1, куда и проксирует все запросы nginx.
Это в двух словах, если нужно более подроное или тонкая настройка - то маны Вам в помощь.
Ответ написан
Комментировать
vitali1995
@vitali1995
Если кратко - nginx лучше. Он разработан позже и учитывает множество ранее непредвиденных проблем. Как правило, apache используют там, где нужно больше гибкости, но возможно это уже устаревшая информация, т.к. nginx продолжает развиваться.

К сведению: nginx тоже работает в несколько процессов, при этом их количество лучше соответсвует возможностям машины. В это время, apache создаёт новые потоки под каждое соединение - и да, эта информация тоже может оказаться устаревшей, т.к. apache ещё не похоронили.
Ответ написан
Комментировать
Jump
@Jump
Системный администратор со стажем.
Для чего нужны Nginx или Apache и что выбрать?
Собственно нужны все сервера для отдачи контента по протоколам http и https, а выбирают исходя из задач и потребностей.
Старый добрый Apache умеет все что нужно, но достаточно ресурсоемкий.
Nginx - изначально умел очень мало и позиционировался в основном как быстрый http прокси для отдачи статики, сейчас он умеет почти все что и Apache, при сохранении всех достоинств, и сейчас практически является стандартом, хотя для многих вещей все еще зачастую необходим апач.
Существует еще куча других веб серверов, включая встроенные в ПО, нетрудно написать такой и самому, на некоторых платформах для этого достаточно пары строк.
Вопрос лишь в том будет ли у этого сервера требуемая функциональность, надежность, и.т.д.
Например многие встроенные рассчитаны на то чтобы все сразу заработало, там нет никаких особых заморочек по обеспечению безопасности, они прекрасно работают с одним клиентом, и даже с десятком, а вот будут ли они работать с миллионом - далеко не факт.
Ответ написан
Комментировать
Nginx - и прокси сервак, и нагрузочный балансировщик на несколько нод и фильтр по доступам и чего еще захочешь.
в батле nginx vs apache по производительности последние года 4-5 побеждает Nginx.
Ндижнкс слушает порты или сокеты твоего веб проекта, и все вхоящие-исходящие запросы идут через него. Тут ты добавляешь фильтры, тюнишь для статики, удаленно слушаешь логи и мониторишь.
Если ты не костыляешь на пхп, то это твой бро, в пхп обычно апачем обходятся.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы