Загрузки

10 лучших веб-серверов с открытым исходным кодом для Linux

10 лучших веб-серверов с открытым исходным кодом для Linux

Вы читаете эту статью с веб-сайта, работающего на веб-сервере с открытым исходным кодом, просто потому, что веб-серверы с открытым исходным кодом обеспечивают работу более 80% веб-сайтов и приложений. Термин веб-сервер может использоваться как синонимы для обозначения аппаратного или программного обеспечения, используемого для обслуживания контента конечным пользователям или клиентам через HTTP.

Веб-серверы находятся в стадии разработки и постоянного совершенствования с начала 90-х годов. Существуют разные типы веб-серверов, и они могут быть созданы для конкретных нужд, для определенных технологий или в качестве специальных опций для определенных корпораций.

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

Веб-серверы с открытым исходным кодом для Linux

Веб-сервер может относиться ко всей аппаратной и программной системе или, в частности, к программному обеспечению, которое принимает и обслуживает HTTP-запросы от клиентов.

В качестве программного обеспечения веб-сервер контролирует и управляет тем, как размещенные файлы предоставляются клиентам. Это может быть HTTP-сервер, который понимает URL-адреса и протоколы HTTP или HTTP / 2.

В качестве оборудования веб-сервер - это компьютер, на котором размещается программное обеспечение веб-сервера и файлы компонентов веб-сайта, такие как HTML-страницы, таблицы стилей CSS, изображения или файлы JavaScript.

Всякий раз, когда пользователю, как и вам, нужен файл или информация, размещенная на веб-сервере, вы будете использовать веб-браузер для выполнения запроса. Запрос отправляется на соответствующий веб-сервер (оборудование), где HTTP-сервер принимает запрос, находит соответствующий файл и отправляет его обратно клиентскому браузеру через HTTP.

Статический веб-сервер будет отправлять размещенные файлы в ваш браузер без изменений.
Динамический веб-сервер содержит базу данных и сервер приложений, который обновляет размещенные файлы перед их отправкой в ​​ваш браузер через HTTP.

1: Веб-сервер HTTP Apache

Первоначально выпущенный в 1995 году, это самый популярный веб-сервер. По статистике использования веб-серверов от w3tech.com, Apache поддерживает около 33.9% веб-приложений и веб-сайтов во всемирной паутине. Он выпущен под лицензией Apache License версии 2, которая требует сохранения уведомлений об авторских правах и заявлений об отказе от ответственности, но не требует распространения измененных версий с использованием той же лицензии. Он работает во всех популярных операционных системах, таких как Linux, Unix-like, Windows, Mac OS X, FreeBSD, Solaris, Novell Netware, OS / 2 и т. Д.

Apache HTTP написан на языке C и использует модульную архитектуру с широкими возможностями настройки и может загружать дополнительные модули для расширения своих функций. К ним относятся mod_proxy, который позволит использовать прокси / шлюз на вашем сервере, mod_proxy_balancer включит балансировку нагрузки для всех поддерживаемых протоколов. mod_file_cache для кэширования, mod_ftp для поддержки FTP для загрузки и скачивания или mod_ssl для поддержки протокола шифрования SSL / TLS.
Другие известные модули включают в себя модуль прокси (mod_proxy), mod_rewrite (модуль перезаписи URL), mod_include и mod_ext_filter.

Apache также имеет популярный метод сжатия, включенный во внешний модуль расширения, mod_gzip. Он был создан, чтобы помочь уменьшить размер веб-страниц, обслуживаемых через HTTP. Пользовательские файлы журналов (mod_log_config) управляют файлами журналов, которые можно анализировать через веб-браузер. Он оснащен ModSecurity для управления обнаружением и предотвращением вторжений для веб-приложений.

Желательные особенности

Начиная с версии 2.4, Apache поддерживает HTTP / 2 через mod_http / 2, что повышает производительность. Apache считался немного медленнее, чем Nginx (асинхронный веб-сервер, управляемый событиями), что привело к более широкому внедрению Nginx, но пользователи стали свидетелями повышения производительности после Apache 2.2.

2: Веб-сервер Apache Tomcat

Apache Tomcat - популярный веб-сервер корпоративного уровня, доступный на рынке. Он создан для размещения веб-решений Java, которые относительно часто и широко используются в крупных организациях из-за высокой масштабируемости, производительности и количества инструментов, доступных для экосистемы Java. Apache Tomcat - это зрелый веб-сервер, создание которого приписывают Джеймсу Дункану Дэвидсону из фонда Apache. Tomcat разрабатывался более 20 лет назад фондом программного обеспечения Apache в качестве веб-сервера Apache.

Tomcat - это сервлет Java, который поставляется с расширенными функциями для взаимодействия с сервлетами Java и реализует технические спецификации, такие как JavaServer Pages (JSP) и язык выражений Java (Java EL).

Tomcat состоит из нескольких компонентов, таких как Coyote, Catalina, Jasper, Cluster и т. Д. Catalina - это контейнер сервлетов, а Coyote - компонент коннектора, поддерживающий HTTP 1.1. как веб-сервер. Он позволяет Catalina (сервлет Java или контейнер JSP) действовать как веб-сервер, который обслуживает локальные файлы в качестве документов HTTP. Jasper - это механизм JSP Tomcat, который анализирует файлы JSP для компиляции их в код Java в виде сервлетов. Компонент Cluster управляет большими приложениями с помощью балансировки нагрузки и других методов.

Вы можете запускать Apache Tomcat вместе с Apache HTTP для облегчения проектов как с Java, так и с PHP. Tomcat также поддерживает AWS (Amazon Web Services), что делает его идеальным для облачных решений. Eclipse IDE поддерживает Tomcat, что упрощает разработчикам создание и развертывание приложений.

Желательные особенности

Веб-сервер Apache Tomcat - лучший вариант для веб-приложений Java. Apache Tomcat часто указывается среди других серверов приложений Java с открытым исходным кодом, таких как JBoss, Wildfly и Glassfish.

3. Веб-сервер Nginx

Nginx read 'Engine-x' - это высокопроизводительный и надежный веб-сервер с открытым исходным кодом. Его можно развернуть как балансировщик нагрузки, обратный прокси-сервер, прокси-сервер IMAP / POP3 и шлюз API. Игорь Сысоев разработал его в 2002 году как ответ на проблему C10K. Проблема C10k - это проблема оптимизации сетевых сокетов и веб-серверов для обработки десяти тысяч одновременных подключений и клиентов. Популярность Nginx выросла примерно до 33.7% всех сайтов.

Nginx использует асинхронную архитектуру, управляемую событиями, для обработки большого количества одновременных сеансов. Он стал популярным среди администраторов из-за низкого использования ресурсов, высокого параллелизма и масштабируемости. Он идеально подходит для размещения веб-сайтов с высоким трафиком и может обрабатывать до 500 000 запросов в секунду при низкой загрузке ЦП.

Nginx можно использовать как автономный веб-сервер или как сервер статического содержимого перед другим веб-сервером. Более того, вы можете развернуть Nginx для обслуживания динамического HTTP-контента в сети с помощью обработчиков SCGI для скриптов, серверов приложений FastCGI, WSGI или модулей Phusion Passenger.

Желательные особенности

Nginx имеет две установленные версии: OSS Nginx и Nginx Plus. Nginx Plus предлагает дополнительные функции, такие как активные проверки работоспособности, сохранение сеансов, интеграция с обнаружением DNS-сервисов, Datalog, плагины Dynatrace New Relic, API очистки кеша, AppDynamic, Active-Active HA с синхронизацией конфигурации. API Nginx Plus поддерживает хранилища ключей и значений.

Nginx был разработан, чтобы конкурировать с сервером Apache, чтобы обслуживать статические файлы, использовать меньше памяти и находить ответы на проблему c10k. Мы можем с уверенностью сказать, что он опережает Apache в этой категории. Вот почему он был развернут на популярных сайтах с высокой посещаемостью, таких как Facebook, LinkedIn и Twitter. Узнайте больше о проекте на официальной домашней странице Nginx.

4: Узел.js веб-сервер

Узел.js - это среда выполнения на стороне сервера, используемая для создания веб-приложений на Javascript. Он поставляется в комплекте с модулем HTTP для расширения его функциональности в качестве веб-сервера. Узел.js был первоначально написан в 2009 году Райаном Далем и в настоящее время включает в себя 1.2% всех сайтов.

Узел.js реализует управляемую событиями архитектуру с возможностью асинхронного ввода-вывода. Он оптимизирует пропускную способность и масштабируемость, и вы можете эффективно реализовывать связь в реальном времени в веб-приложениях. Ключевое различие между Node.js и других веб-серверов заключается в том, что он является частью стека веб-разработки, состоящего из стека CSS, HTML и JavaScript.
Узел.js управляется Node.js Foundation и доступен под разными лицензиями. Узнайте больше на узле.сайт проекта js.

5. Веб-сервер Caddy

Caddy - это быстрый и мощный мультиплатформенный веб-сервер, обратный прокси, шлюз API и балансировщик нагрузки. Проект Caddy был разработан Мэтью Холтом и написан на языке Go. Это новый фреймворк, который активно привлекает внимание в фреймворке с открытым исходным кодом как альтернатива веб-серверу Apache.

Caddy построен без зависимостей, что делает его портативным, простым в установке и использовании в различных дистрибутивах. Caddy поддерживает такие функции, как IPv6, Markdown, WebSockets, FastCGI, шаблоны и т. Д. Caddy активирует HTTPS по умолчанию для сайтов с соответствующими доменными именами и перенаправляет HTTP-запросы на HTTPS. Он получает сертификаты во время запуска и обновляет их в течение всего срока службы сервера.

Интересно, что у него есть функция TLS по запросу, которая предлагает альтернативный метод конфигурации, который позволяет Caddy получать сертификаты только по мере необходимости во время рукопожатий TLS. Он доступен во всех основных дистрибутивах, таких как MAC, Windows, Android, Linux, BSD и Solaris.

Желательные особенности

Caddy - отличный кандидат для пользователя, который стремится к простоте и доволен работой с конфигурациями по умолчанию. Это идеальный веб-сервер для запуска приложений, написанных на GO. Согласно w3tech, в настоящее время он поддерживает 0.1% всех сайтов.

6. Веб-сервер Eclipse Jetty

Eclipse Jetty спроектирован и построен как HTTP-сервер, HTTP-клиент и контейнер сервлетов javax для обслуживания статического и динамического контента в качестве автономного или встроенного экземпляра. Веб-сервер Jetty и другие основные компоненты размещаются и обслуживаются Eclipse Foundation.
Jetty - это легкий и хорошо масштабируемый веб-сервер и механизм сервлетов. Jetty - это полностью асинхронный веб-сервер, компонентно-ориентированный и легко встраиваемый в другие приложения. Он поддерживает такие веб-протоколы, как HTTP, HTTP / 2 и WebSocket. Эти технологии реализуют архитектуру с большим объемом, малой задержкой и максимальной производительностью, сохраняя при этом ее простоту и совместимость. Он может достичь отличных результатов с десятками тысяч одновременных HTTP-соединений и соединений WebSocket.

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

Желательные особенности

Eclipse нашел применение во многих проектах, таких как Apache ActiveMQ, Google App Engine, Alfresco, Apache Geronimo, Apache Maven, Apache Spark, Eclipse и Streaming API Twitter. Узнайте больше здесь.

7: Веб-сервер Lighttpd

Lighttpd или Lighty - это бесплатный веб-сервер с открытым исходным кодом, созданный для приложений, критичных к скорости. Это безопасный, быстрый, гибкий и занимает меньше места, чем 1 МБ. Его небольшая занимаемая площадь делает его очень экономичным по отношению к ресурсам сервера и загрузке ЦП. Lighttpd распространяется под лицензией BSD и пользуется популярностью благодаря своей простоте, производительности и модулям поддержки.

Lighttpd построен на асинхронной модели обработки запросов, которая необходима для обработки и управления большим объемом параллельных подключений, что делает его идеальным вариантом для высокопроизводительных веб-приложений. Кто-то может сказать, что он отражает архитектуру Nginx. Он поддерживает FastCGI, CGI и SCGI для взаимодействия вашего веб-сервера с другими программами. Он также поддерживает приложения, написанные на других языках, таких как Python, Perl, PHP и Ruby, которые являются популярными языками разработки среди разработчиков.

Другие расширенные функции Lighty включают: Проверка подлинности, перезапись URL, поддержка SSL / TLS, виртуальный хостинг и сжатие вывода HTTP через модуль mod_compress.

Желательные особенности

Lighttpd - это однопоточный веб-сервер, который может легко обрабатывать несколько сотен запросов в секунду и является хорошим вариантом для пользователей, которые сталкиваются с проблемами в средах с низким объемом памяти и низким процессором. Lighty изначально работает в системах Linux / Unix, но вы также можете запустить его на платформе Microsoft Windows. Пожалуйста, узнайте больше о его статистике использования, лицензировании и поддержке на домашней странице Lighttpd.

8: Веб-сервер OpenLiteSpeed

OpenLiteSpeed ​​- это альтернатива LiteSpeed ​​Enterprise Web server с открытым исходным кодом. Он создан для простоты, безопасности и оптимизации и включает все основные функции корпоративной версии.

OpenLiteSpeed ​​разработан на основе событийно-оптимизированной архитектуры. Он поставляется с интуитивно понятным графическим интерфейсом WebAdmin для управления веб-сайтами и мониторинга различных наборов показателей сервера. OpenLiteSpeed ​​оптимизирован для выполнения сценариев, разработанных на широком спектре языков, таких как Perl, Python, Ruby и Java. Он поддерживает IPv6 и SSL / TLS.

Желательные особенности

OpenLiteSpeed ​​универсален, и вы можете настроить его как балансировщик нагрузки или обратный прокси-сервер. OpenLiteSpeed ​​можно загрузить бесплатно по лицензии GPLv3. Это хороший вариант для сайтов с контентом на базе WordPress.

9: Веб-сервер H2O

H2O - это HTTP-сервер нового поколения с открытым исходным кодом. Он может похвастаться более быстрым временем отклика при меньшей загрузке ЦП по сравнению с веб-серверами старого поколения. H2O разработан и построен с нуля для создания полнофункциональных реализаций HTTP / 2.

Пользователи H2O могут воспользоваться преимуществами новых функций HTTP / 2, таких как оптимизация задержки, отправка сервера, приоритетное обслуживание контента и отправка сервера. Эти функции могут использовать преимущества современных функций браузера.

Желательные особенности

H20 написан на языке программирования C и также может использоваться как библиотека. H2O доступен по лицензии MIT. Узнайте больше о статистике использования H2O.

10. Веб-сервер Cherokee

Cherokee - это легкий, быстрый, гибкий и производительный кроссплатформенный веб-сервер с открытым исходным кодом. Он разрабатывался как личный проект, но превратился в достойный веб-сервер, работающий на Linux, BSD, Solaris, MAC и Windows.

Cherokee попал в наш список из-за своей простоты. Он поставляется с дружественным веб-интерфейсом, и вам не нужно осваивать множество конфигураций командной строки, чтобы заставить его работать и работать.
Он поддерживает такие технологии, как FastCGI, CGI, SSI, SCGI, PHP, TLS и зашифрованные соединения SSL, VirtualHosts, балансировку нагрузки и файлы журналов, совместимые с Apache.

Cherokee может обрабатывать одновременные соединения при нехватке памяти и повышает производительность оборудования. Он имеет модульную архитектуру, которую можно изменять и расширять с помощью мастера администрирования для выполнения конкретных задач, расширения приложений и запуска фреймворков.

Желательные особенности

Несмотря на то, что он не активно развивается, это хороший веб-сервер для простых проектов. Он поддерживает PHP, Django, Ruby on Rails, ColdFusion, Alfresco, Symfony, GNU Mailman, .NET с Mono, rTorrent и Zend Engine, что дает вам множество альтернатив для сборки вашего проекта.

Учись, пытаясь

Если вы только начинаете работать с веб-серверами, попробуйте стеки LEMP (Linux, Nginx, MySQL, PHP) или LAMP (Linux, Apache, MySQL, PHP). Вы можете легко установить эти стеки с помощью простых установщиков, они также доступны в вашем диспетчере пакетов Linux. Это даст вам широкий практический опыт работы с веб-серверами.

Я включил несколько популярных веб-серверов (Apache, Nginx), более новые (H2O, Node.js) и посмотрел на веб-сервер Jetty, поддерживаемый технологиями Java. Список ни в коем случае не является обширным, и после дополнительных исследований вы сможете найти другие технологии веб-серверов, которые можно опробовать или использовать в своем проекте.

Переназначьте кнопки мыши по-разному для разных программ с помощью X-Mouse Button Control
Может быть, вам нужен инструмент, который мог бы изменять управление вашей мышью с каждым приложением, которое вы используете. В этом случае вы можете...
Обзор беспроводной мыши Microsoft Sculpt Touch
Я недавно прочитал о Microsoft Sculpt Touch беспроводная мышь и решил ее купить. Побывав некоторое время, я решил поделиться своим опытом с ним. Эта б...
Экранный трекпад и указатель мыши AppyMouse для планшетов с Windows
Пользователи планшетов часто пропускают указатель мыши, особенно когда они привыкли пользоваться ноутбуками. Смартфоны и планшеты с сенсорным экраном ...