Как быстро поднять HTTP сервер
В интернете существует масса статей про настройку тех или иных HTTP серверов. равно как существует и огромное множество самих HTTP серверов, поэтому принять решение в пользу того или иного решения зачастую бывает непросто.
В этой статье мы не будем заниматься вопросом выбора сервера — ведь слишком много условий надо учесть. Одни сервера заточены под работу в Unix/Linux системах, но не работать на Windows платформе, другие быстрые и производительные, но не поддерживают определенные языки программирования, на которых может быть написан ваш сайт.
Мы задались другой задачей — как можно быстрее и легче развернуть HTTP сервер, который будет достаточно производителен, стабилен и защищен при доступе из интернета. Но для начала краткая характеристика имеющихся серверных решений.
Обзор HTTP рынка серверов
Итак, все HTTP сервера можно разделить на продуктивные и локальные. Первые можно и нужно использовать для публикации web контента в интернет или публикации web-приложений. К таким серверам относятся мировые лидеры, занимающие основную долю рынка — Apache, Microsoft IIS и nginx. Первый — мировый лидер для публикации веб сайтов на хостингах в мире. IIS чаще всего используется для публикации web-приложений, написанных для Windows или на языках платформы .NET, с использованием VBScript и JScript, Sharepoint сайтов и для публикации корпоративных порталов, например онлайн-банков. Для остальных дачах применение IIS неоправдено. nginx — отечественная разработка, которую все чаще применяют на web-хостингах, потому что этот сервер отличается от Apache большей масштабируемостью и производительностью. Зачастую, их можно применять вместе.
Но все эти решения — это долго, сложно для развертывания и требует полноценного сервера на Linux или Windows Server. Нас в данном случае это не интересует.
Также существует группа локальных серверов: Denwer, XAMPP, VertigoServ, Open Server, WAMP и другие. Что такое локальный сервер? Это не одна программа (не один конкретный веб сервер), а специальный сборник, куда входят облегченные варианты сложных серверных программ. Обычно в сборку входят: сам сервер (в основном Apache, но могут быть и другие), компилятор PHP (с его помощью браузер может прочитать коды и собрать страницу), компоненты для работы с базами данных, различные установщики и многие другие программы. Все это нужно разработчикам веб-приложений для тестирования их разработок на локальных машинах. Действительно, удобно и быстро можно развернуть пакет «все в одном», но это совершенно незащищенные решения, не предназначенные для публикации сайтов в интернет. К слову говоря, из локальных серверов я предпочитаю Vertigo (простой и производительный) и Open Server (отличный портативный отечественный продукт, достойная замена Denwer-у ).
Не могу не рассказать о еще одном отечественном полнофункциональном сервере для предприятий — Eserv. Это мощный почтовый, HTTP сервер FTP-сервер, DNS-сервер, статистика, SNMP-agent и SNMP-монитор, видеомониторинг в одном. Возможности почтового сервера просто безграничны: Поддержка групповой работы — WIKI, форумы, общие IMAP-папки, блоги, чат, NNTP-сервер, сервер календарей и задач, общая адресная книга (LDAP-сервер), поддержка Exchange ActiveSync (EAS) для синхронизации мобильных клиентов. Поддерживаются любые способы авторизации (ActiveDirectory, WinNT local, ODBC, текстовые списки, встроенная БД, X.509-сертификаты и т.д.), SSL/TLS. И это платный коммерческий продукт. Но мы рассматриваем HTTP в этой статье, поэтому. HTTP Сервер, входящий в комплект — acWEB — совершенно бесплатное Open Source решение. Это достойная замена IIS под Windows, которая поддерживает:
- HTTP server with SSL/TLS
- Built-in Forth translator
- CGI support
- ISAPI support
- FastCGI support
Все домены, A-записи в DNS которых указывают на веб-сервер под управлением Eserv, автоматически получают готовую к использованию систему групповой работы, включающую и управление содержимым сайта (см. следующий раздел), основой которой являются wiki и общие папки. Но можно продолжать использовать Eserv и для обычных сайтов (статические страницы, различные CMS, форумы, магазины на PHP и Perl, и т.д.), если того требуют обстоятельства. Поддержка FastCGI включена в Eserv по умолчанию, и режим работы PHP (CGI, ISAPI или FastCGI) под acWEB задается опцией настройки.
Надо сказать, что сервер это очень малотребователен к ресурсам.
Но это было лирическое отступление.
Легкие HTTP сервера
Долгое время я считал самым легким и быстрым в развертывании еще один бесплатный отечественный продукт Макса Феоктистова — Small HTTP server, который на самом деле был больше, чем веб сервер. Web, почтовый сервер, DNS сервер, FTP сервер, Proxy сервер. Все в одном! И все это весит 146 Кбайт и не требует установки. С точки зрения HTTP, это полноценный веб сервер, поддерживающий:
- Server Side Includes (включения на стороне сервера), регулярные выражения в SSI.
- CGI интерфейс для скриптов (Запуск исполняемых файлов; Perl, PHP, и других внешних интерпретаторов)
- ISAPI интерфейс.
- Виртуальные хосты и каталоги.
К сожалению, для исполнения скриптов требуются внешние интерпретаторы для Perl и PHP соответственно, но это и понятно при таком размере сервера. Обработка phtml-страниц через запуск внешнего PHP-интерпретатора. Сервер может поддерживать несколько виртуальных хостов. Каждый хост имеет собственный корневой каталог и также может включать виртуальные каталоги общие для всех.
Все это звучит круто, но. требует достаточно хорошего понимания того, как работает сервер и умения конфигурировать файл php.ini, если вам требуется исполнение PHP. Хотя кому это нужно для Sql!? Строго говоря, настроек миллион, а интерфейс очень неудобный, отсталый, написанный много лет назад. Чтобы запустить сервер вам потребуется минут 5, а чтобы его настроить под себя — не один день. Ну а самое главное, что с 2012 года сервер не обновлялся, документация тоже оставляет желать лучшего.
Поэтому этот сервер вы можете иметь ввиду, если вам хочется что-то надежное, потребляющее очень мало ресурсов, но которое потребует от вас много усилий по изучению настроек.
Самый легкий и простой HTTP сервер
То, на чем я остановился и пользуюсь до сих пор — HTTP File Server. Как следует из названия, этот HTTP сервер предназначен, в первую очередь для расшаривания файлов по интернет. Но точно также легко, можно и выкладывать HTML сайт у себя на сервере.
Строго говоря, почти ничего делать не нужно, кроме как указать папку, в которой находится контент сайта («bind root to real-folder») и первый файл сайта, если он отличается от index.htm. Да, исполнение серверных скриптов, таких как PHP и ASP, не поддерживается в HFS. Если для вас это главное — можете дальше не читать, а выбрать что-то из серверов выше. Если же вам требуется публиковать статические страницы или файлы для скачивания и загрузки, то HFS — удобное решение.
HFS поддерживает концепцию виртуальной файловой системы, но сервер может работать и с реальными папками на диске. В виртуальную структуру можно включать реальные папки с их содержимым. Очень удобно.
- не требует установки, состоит из одного маленького исполняемого файла.
- почти не требует ресурсов, нет утечки памяти.
- вся конфигурация хранится или в реестре или в одном ini-файле, на выбор.
- Можно запустить сервере как службу Windows.
- Вся настройка производится через достаточно простой GUI интерфейс. Чтоб запустить сайт, требуется 2 минуты. Вся первичная настройка описана здесь.
- Вывод можно настроить через кастомизированные шаблоны (файлы .tpl), которые полностью доступны для редактирования, как и весь код, впрочем. Можно написать шаблон, в котором добавлены любые произвольные кнопки и меню. Это при условии, если вы не хотите публиковать готовый сайт.
Стандартный шаблон достаточен в большинстве случаев: в нем есть возможность логина, поиска по файлам и папкам сервера, групповой работы с файлами. Подробнее здесь. - Начиная с версии 2.3 поддерживаются макросы, которые заменяют серверные скрипты, которые используются совместно с шаблонами (templates). Больше о HFS макросах в wiki.
- Поддерживается полноценное скачивание и закачка файлов на сервер. Вам только требуется указать папки для этого в вашей виртуальной файловой системе и настроить на них права.
- Сервер поддерживает настройку прав доступа для пользователей и групп. На каждую папку можно настроить права отдельно или унаследовать их.
- Поддерживается тонкая настройка ограничения пропускной способности для групп и пользователей на скачивания и закачку.
- Сервер постоянно мониторит доступные IP адреса. Вы можете указать порт и IP, на котором вы хотите, чтобы сервер отвечал.
- Естественно поддерживается ограничение на количество различных подключений и скачиваний для групп и пользователей.
- Продвинутые могут настроить свои MIME типы.
- Поддерживается сжатая отдача контента.
- Доступа подробная система логирования любых событий на севере. Из текущего лога в окне можно прямо забанить пользователей по IP или другим критериям.
- Поддерживается работа с Dynamic DNS
- Поддержка HTTPS с помощью внешнего модуля Stunnel
Из недостатков по сути — только отсутствие возможности работы с внешними интерпретаторами и SQL. На сайте разработчика представлена очень подробная документация в wiki. С её помощью вы сможете быстро начать.
Локальный сервер (WAMP) в 2020 году
WAMP объединяет программные продукты, предназначенные для разработки и тестирования локальных сайтов и приложений, то есть на компьютере с ОС Windows и без выхода в Интернет. При этом настройка и наполнение веб-ресурса осуществляется без аренды платных серверов. В данную платформу также входят открытое ПО Apache, СУБД MySQL, интерпретатор PHP для работы с языками программирования, автоматический установщик расширений.
Зачем нужен WAMP-сервер?
Программист обычно разрабатывает сайт на своем компьютере, а затем переносит его на хостинг. Но чтобы PHP-скрипты выполнялись правильно, на ПК должны быть те же программы, что и на хостинге. Устанавливать и настраивать каждую по отдельности долго и неудобно, поэтому необходима WAMP-платформа, которая уже включает требуемое для веб-разработки ПО.
Во время проверки сайта в браузере запускается специальный адрес localhost, и идет обращение к локальному серверу. Запрос обрабатывается, а результат передается обратно в браузер. Благодаря этому сайт выглядит так, будто загружен на хостинг.
WAMP позволяет в спокойном режиме сделать и протестировать сайт и неспешно выбрать хостинг-провайдера.
Обзор локальных серверов
Ниже представлен ТОП наиболее популярных в 2020 году платформ. Список ранжирован не по качеству, а в произвольном порядке.
Open Server
Open Server является полноценным профессиональным инструментом, самым востребованным среди разработчиков. Имеет простой и понятный интерфейс и навигацию, удобную управляющую программу. Отличается большим выбором подключаемых компонентов.
В полную версию включен необходимый набор программ для моментального старта: Opera, Sublime, WinSCP, Simplewall, Jcpicker, Bright Master. Сервер регулярно обновляется, что говорит о стабильности его работы.
Пользователям предлагается на выбор несколько HTTP-модулей (Apache или Nginx), различные версии модулей PHP и СУБД. К тому же между ними работает быстрое переключение.
Установка стационарная и портативная.
- Многофункциональность.
- Интерфейс мультиязычный.
- Есть подробная инструкция по работе с сервером.
- Доступ к доменам осуществляется в один клик.
- Возможность работы через командную строку.
- Быстрота запуска и остановки службы.
- Возможность просмотра логов в реальном времени.
Недостаток один – не предусмотрено автообновление сервера.
Denwer
Это – джентльменский набор веб-разработчика, одна из самых первых на IT-рынке программ. Содержит базовые компоненты: Apache, MySQL, PHP, phpMyAdmin, но как таковая управляющая программа отсутствует. Выполняет основные простые задачи.
На официальном сайте можно скачать дополнительные модули и расширения (языки программирования Python и Parser, дистрибутив ActivePerl, СУБД PostgreSQL и FireBird, эмулятор емейл-сервера с протоколом SMTP).
Подходит для начинающих разработчиков и работает на слабых компьютерах.
Установка стационарная и портативная.
- Простота функций и навигации.
- Легковесность сервера – не нагружает систему.
- Возможность работы через командную строку.
- При запуске не требует инсталляции внешних библиотек.
- Большая база знаний на форуме и самом сайте.
- Не придется деинсталлировать через системный инструмент или стороннюю программу – достаточно просто удалить папку.
- Не обновляется с 2012 года – в функциональном плане сильно отстает от конкурентов, имеет устаревшую версию PHP-файлов.
- Нет удобного интерфейса.
- Нет различных компонентов администрирования.
Скачать Denver можно на официальном сайте разработчика
Laragon
Laragon – молодой, но перспективный проект. Является простым и удобным, но при этом многофункциональным сервером, включает базовый набор компонентов (Apache/Nginx, MySQL, PHP, Memcached, Redis). Легко запускается, конфигурируется и работает. Главная отличительная особенность – производительность и стабильность.
Есть возможность быстро переключаться между имеющимися версиями PHP, а также добавлять другие. При создании нового проекта по умолчанию создается локальный домен. Виртуальный хостинг устанавливается автоматически за пару минут.
Подходит для начинающих разработчиков.
Установка стационарная и портативная. Представлен в версии Full и Lite (не включает Node.js 11, npm, yarn, git).
- Русскоязычный интерфейс.
- Понятный интерфейс и управление.
- Работа через командную строку.
- Обширная база знаний представлена на форуме.
- Быстрый запуск и работа.
- Достаточный набор функций.
- Наличие фреймворка Laravel.
- Нет phpMyAdmin из коробки.
- Сайт и форум на английском языке.
Скачать Laragon на официальном сайте разработчика »
XAMPP
Универсальный сервер, который можно использовать на Windows (но не на 2003 и XP), Mac (10.6 и выше) и Linux (многие дистрибутивы). Кроме стандартных компонентов Apache и PHP включает также СУБД MariaDB, Perl, OpenSSL, расширения и темы. Среда XAMPP очень удобна в использовании: внутри папки с рабочим окружением htdocs хранятся все локальные сайты.
При правильной настройке работает как полноценный интернет-сервер. Защита компонентов настроена, поэтому может функционировать в общественной сети.
- Многофункциональность.
- Простой запуск, не требующий настройки.
- Быстрая остановка модулей.
- Большое активное комьюнити.
- Постоянные обновления.
- Возможность запуска разных процессов по отдельности.
- Англоязычный интерфейс.
- Малополезная панель управления (есть только старт и стоп).
- Ручная настройка рабочего окружения.
Скачать XAMPP на официальном сайте.
WampServer
Классическая платформа WAMP, включающая последние версии Apache, MySQL и PHP. Совместима со всеми версиями Windows, кроме XP, Server 2003, SP3. Работает только на файловой системе NTFS. Отличается производительностью и стабильностью.
Поддерживает большое количество языков и разные версии модулей. Конфигурация сервера легко настраивается через интерфейс.
- Русскоязычный интерфейс.
- Инсталляция в несколько кликов.
- Управление из трея Windows.
- Простая структура файлов.
- Понятное меню и навигация.
- Активное сообщество.
- Требует инсталляцию библиотек Microsoft C/C++.
- Во время инсталляции программы необходимо выйти из Скайпа.
- Неудобная управляющая программа.
UwAmp
UwAmp – удобный инструмент для разработки. Помимо базовых компонентов включает СУБД SQLite и панель phpMyAdmin, поддерживает несколько версий PHP и UNICODE, контролирует использование процессора. Интерфейс оснащен удобным меню с различными конфигурациями и командами.
Установка стационарная и портативная.
- Инсталляция в несколько кликов.
- Простота использования (быстрый запуск и завершение работы).
- Удобное меню и навигация.
Недостаток – англоязычный интерфейс.
Скачать UwAmp на сайте производителя.
AMPPS
Представляет собой не просто сборку, а мощную платформу для создания веб-ресурсов с полноценной библиотекой приложений. Поддерживает распространенные CMS, блоги, форумы, доски объявлений, фотогалереи и т.д. Включает Apache, СУБД MySQL и MongoDB, PHP, Perl, Python. AMPPS – отличный инструмент изучения CMS, форумов и других скриптов для создания сайтов.
Подходит для начинающих разработчиков.
- Минимальное участие в инсталляции.
- Простота использования без знаний программирования.
- Частые обновления программы и компонентов.
- Удобная панель задач и простая навигация.
- Наличие Softaculous – автоматического установщика ПО.
- Возможность подключения FTP-сервера.
- Англоязычный интерфейс.
- Требует установку Microsoft Visual C++.
Скачать AMPPS на сайте производителя.
Winginx
Интересная сборка с управляющей программой и обширным базовым комплектом, куда входят Nginx, MongoDB и Node.js. Дополнительное ПО можно загрузить из магазина, включая популярные CMS и фреймворки. Есть возможность выбирать между СУБД MySQL, MongoDB и Redis. Работает с разными версиями PHP. Благодаря встроенному Центру обновления пользователь сможет проверять актуальность установленных компонентов.
Подходит для начинающих разработчиков.
Установка стационарная и портативная.
- Интерфейс на русском языке.
- Простая инсталляция и быстрый запуск.
- Удобное трей-меню и раздел настроек.
- Функция автоматической установки скриптов.
- Управление задачами проекта.
- Контроль рабочего времени
- Просмотр локальной почты сервера.
- Бесплатный сервис для конвертации htaccess-файлов (на сайте).
- Автообновления.
Недостаток – сложность работы с логами.
Скачать Winginx на сайте производителя.
Vertrigo
Функциональный сервер с обычным WAMP-комплектом, также включает SQLite, SQLiteManager и PhpMyAdmin. Благодаря наличию опции Zend Optimizer увеличивается производительность запущенных процессов на 40%. Предоставляет хорошие возможности по настройке PHP и Apache.
Подходит для начинающих разработчиков и нетребовательных пользователей.
- Занимает немного места на жестком диске.
- Простая установка и деинсталляция.
- Удобный и понятный раздел меню.
- Не требует настройки.
- Постоянно обновляется вместе с компонентами.
- Англоязычный интерфейс.
- Трудности с созданием домена или алиаса.