💁Веб-сервера💁
Под термином веб-сервер скрывается несколько значений:
🤯это может быть компьютерная программа (программное обеспечение, ПО), которая контролирует доступ веб-пользователей к размещённым на сервере файлам (это ПО включает в себя как минимум HTTP-сервер и HTTP-протокол);
🤯это может быть сам компьютер ("железо"), который хранит файлы сайта;
🤯это может быть совокупность и "железа" и ПО, работающие совместно.
Чтобы стало понятнее рассмотрим пример:
Например, мы хотим скачать картинку с котиками с сайта Pinterest. Когда мы нажимаем на кнопку "скачать", формируется наш запрос. Этот запрос достигает нужного веб-сервера ("железо"), сервер HTTP (ПО) принимает запрос, находит запрашиваемый документ (если нет, то сообщает об ошибке 404) и отправляет обратно, также через HTTP-протокол.
Для чего нам нужен веб-сервер?
Главная задача веб-сервера принимать HTTP-запросы от пользователей, обрабатывать их, переводить в цифровой компьютерный код. Затем выдавать HTTP-ответы, преобразуя их из миллионов нолей и единичек в изображения, медиа-потоки, буквы, HTML страницы.
На сегодняшний день существует около десятка наиболее популярных веб-серверов. Каждый из них заточен на решение той или иной задачи.Рассмотрим ТОП-2 веб-серверов, которые являются самими популярными на данный момент:
⭐️Apache
⭐️Nginx
🧑💻Apache – Apache был разработан для доставки веб-контента, доступ к которому осуществляется через Интернет. Он известен тем, что играл ключевую роль в начальном росте интернета. Apache - это программное обеспечение с открытым исходным кодом, разработанное и поддерживаемое открытым сообществом разработчиков и работающее в самых разных операционных системах. Архитектура включает в себя ядро Apache и модули. Различные модули соответствуют различным функциям, которые выполняются по каждому запросу.
Модель «один сервер делает все» стала ключом к раннему успеху Apache. Однако по мере увеличения уровня трафика и увеличения количества веб-страниц и ограничения производительности настройка Apache на работу с реальным трафиком усложнялась, поэтому Apache работает медленно, если наплыв пользователей слишком большой, откуда вытекает проблема с масштабируемостью. Дыры в безопасности это еще один минус Apache. Важно: это относится только к тем случаям, когда к веб-серверу подключено огромное количество модулей. Чем их больше, тем сложнее процесс конфигурирования, появляются уязвимые места и дыры. Помимо того, что в Apache есть огромное количество настроек, их редактирование остается простым, а за вспомогательной информацией всегда можно обратиться к официальной документации.
🧑💻Nginx — был разработан специально для устранения ограничений производительности веб-серверов Apache. Производительность и масштабируемость Nginx обусловлены архитектурой, управляемой событиями. Он значительно отличается от подхода Apache. В Nginx каждый рабочий процесс может одновременно обрабатывать тысячи HTTP-соединений, в отличае от Apache. Следовательно, Nginx - это легковесная, масштабируемая и высокопроизводительная реализация.
Nginx, как и Apache имеет открытый исходный код, модульная структуру, но при этом у него нет проблем с безопасностью и масштабированием, потому что Nginx использует асинхронную и управляемую событиями архитектуру, поэтому он может быстрее и эффективнее обрабатывать несколько подключений. Преимущество Nginx - Скорость. Nginx работает в 2,5 раза быстрее Apache. Вдобавок, Nginx может работать как веб-сервер, так и прокси-сервер. Но не смотря на это, Nginx имеет сложную архитектуру, поэтому разработка модулей не легка, по сравнению с Apache. Разработчики модулей Nginx должны быть очень осторожны, чтобы создавать эффективный и точный код, без сбоев, и соответствующим образом взаимодействовать со сложным ядром, управляемым событиями, чтобы избежать блокирования операций. Есть еще один минус Nginx: кроссплатформенность на Windows не так стабильна, как на платформах UNIX. В свою очередь Apache работает стабильно на всех операционных системах.
WEBIK |
@gki_webik_ru