что такое сервер и сайт
Что такое сервер и для чего он нужен
Содержание
Содержание
Сегодня сервера используются везде, от предприятий и промышленных комплексов, до государственных и военных структур.
Нередко можно услышать фразы вроде «правительственные сервера» или «сервера компании, бренда».
Для многих сервер — это просто корпоративный компьютер, предназначенный для обработки и хранения информации, но это не совсем так.
Ликбез для чайников
Каждый сервер запускается для выполнения определенных задач, вот некоторые из них:
Существуют сервера для рендера, майнинга, разнообразных облачных технологий и научных исследований.
Каждый сервер требует индивидуальной конфигурации, подбора оборудования и комплектующих.
Понятным языком — что такое сервера, для чего нужны
Сервер — компьютер, подключенный по локальной или внешней сети, к которому периодически обращаются другие компьютеры, именуемые клиентами.
Не каждый сервер стоит на серверном программном обеспечении и состоит из серверных комплектующих, но каждый сервер находится в одной сети с другими компьютерами.
Серверные системы отличаются от стационарных ПК, и служат для выполнения иных задач.
Для корпоративных и коммерческих целей собираются полноценные серверные платформы. Такие сборки отличаются от десктопов серверными процессорами, материнскими платами и даже оперативной памятью.
Серверные процессоры отличаются от десктопных по нескольким показателям:
В последние годы, компания AMD стала выпускать как серверные, так и десктопные модели процессоров с одинаковым количеством потоков и ядер, в то время как Intel не отступает от производственных стандартов.
Модель процессора | AMD EPYC 7742 | AMD Ryzen Threadripper 3990X | Intel Xeon Platinum 8380HL | Intel Core i9-10980XE Extreme Edition |
Платформа | Сервер | Десктоп | Сервер | Десктоп |
Количество ядер | 64 | 64 | 28 | 18 |
Количество потоков | 128 | 128 | 56 | 36 |
Базовая тактовая частота процессора | 2.3 ГГц | 2.9 ГГц | 2.9 ГГц | 3.0 ГГц |
Максимальная тактовая частота процессора | 3.4 ГГц | 4.3 ГГц | 4.3 ГГц | 4.8 ГГц |
Кэш-память | 256 МБ | 256 МБ | 38.5 МБ | 24.75 МБ |
Макс. объем памяти | 4 ТБ | 1 ТБ | 4.5 ТБ | 256 ГБ |
Макс. число каналов памяти | 8 | 4 | 6 | 4 |
Макс. пропускная способность памяти | 190.7 ГБ/с | 95.37 ГБ/с | 187.2 ГБ/с | 94 ГБ/с |
Учитывая объемы ОЗУ, устанавливаемые на серверные сборки, десктопная версия операционной системы подойдет далеко не всем предприятиям.
Например, Windows 10 в 2020 году ограничена двумя терабайтами ОЗУ, при этом Windows Server 2019 способна работать при 24 терабайтах оперативной памяти.
Основной задачей серверных систем является обработка максимальных объемов информации в кратчайшие сроки.
На серверах обычно хранят и редактируют данные, устанавливают производственное программное обеспечение и производят расчеты.
Как понять, что вашему малому предприятию (или не малому) пора обзавестись собственным сервером
В чем собственный сервер может помочь предприятию?
Если предприятие нуждается в подобных услугах, то пора обзавестись собственным сервером.
Что такое сервер и для чего он нужен?
Содержание
Что такое сервер простыми словами
С термином «сервер» неразрывно связан другой — «клиент». Так называется персональный компьютер, мобильное или другое устройство, находящееся в одной сети с сервером, направляющее на него те или иные запросы и получающее от него необходимую информацию. В существовании сервера не было бы никакого смысла без связанных с ним клиентских устройств.
Для чего предназначен сервер
Эта машина в зависимости от её типа и назначения может выполнять разные полезные функции:
хранить информацию одного или нескольких сайтов. Так работают серверы интернет-провайдеров, оказывающих услуги хостинга;
координировать взаимодействие множества компьютеров, находящихся в одной сети. Классический пример — игровые серверы;
использоваться для хранения корпоративных данных и доступа сотрудников к ним. Один из возможных примеров — сервер в центральном офисе компании, на котором хранится и регулярно обновляется бухгалтерская база данных.
Это — лишь некоторые из распространённых способов использования серверов. Ниже мы подробно рассмотрим существующие виды этих машин и более детально раскроем вопрос их применения.
Из чего состоит сервер
Любой сервер вне зависимости от его типа и назначения представляет собой компьютер. Именно поэтому он имеет на борту классические компьютерные комплектующие:
материнскую плату, играющую роль основы системы;
один или несколько центральных процессоров;
определённый объём оперативной памяти;
систему хранения данных, состоящую из накопителей того или иного типа.
«Железо» сервера при принципиальной схожести с комплектующими обычного персонального компьютера имеет и свою специфику. Она связана с тем, что основные задачи серверного оборудования — хранение, интенсивная обработка и быстрая передача больших объёмов данных. Чтобы они успешно выполнялись, серверы оснащают:
высокопроизводительными многоядерными процессорами;
большим объёмом оперативной памяти с контролем ошибок;
ёмкими и скоростными жёсткими дисками и твердотельными накопителями.
Человек взаимодействует с сервером минимальное количество времени — лишь на этапах его настройки, обслуживания и ремонта. Отпадает необходимость вывода на монитор качественной 3D-графики, и с этим связана ещё одна аппаратная особенность серверов — как правило, в них используются видеокарты начального уровня.
Интенсивная обработка данных влечёт сильный нагрев серверных комплектующих. Для нейтрализации этого негативного эффекта в состав серверов включают мощные системы охлаждения.
Прямые обязанности сервера — приём и передача данных. Учитывая это, производители и сборщики оснащают серверные машины высокопроизводительными сетевыми картами. Если речь идёт о сервере с доступом через всемирную сеть, в компаниях и дата-центрах обеспечивают широкополосное интернет-подключение оборудования.
В прошлом серверы часто собирались в вертикальных корпусах, похожих на те, что используются для обычных компьютеров. Позже общепринятым стандартом стало стоечное исполнение. Современные серверные комплектующие монтируются в широких плоских блоках, которые, в свою очередь, в горизонтальном положении устанавливаются в серверный шкаф. Такое исполнение позволяет максимально компактно разместить оборудование в ограниченном объёме пространства.
Чтобы вся сеть функционировала стабильно, нужно обеспечить непрерывное электроснабжение сервера. Для этого в большинстве случаев используются источники бесперебойного питания.
Важно защитить серверы от больших перепадов температуры и влажности, затопления, пожара и других форс-мажорных ситуаций. Для этого в дата-центрах и крупных компаниях оборудуют специальные серверные комнаты, которые заслуживают отдельного обзора.
Особое внимание стоит уделить серверному программному обеспечению, под управлением которого работает перечисленное выше «железо». Обычные операционные системы — та же Windows, известная, пожалуй, каждому — в данном случае подходят плохо или не подходят вовсе. Используются серверные версии ОС — как разработанные Microsoft, так и входящие в семейство Linux. Последние, к слову, получили максимально широкое распространение, поскольку обеспечивают стабильность работы серверов, безопасность данных и гибкость конфигурирования. Работа с серверной ОС семейства Linux (например, Ubuntu Server) требует специальных познаний, поэтому дата-центры и компании нанимают на работу квалифицированных IT-специалистов.
Если речь идёт о небольшом сервере, от которого не требуется особой функциональности и вычислительной мощности, может подойти и обычная операционная система. Так, возможностей Windows более чем достаточно для того, чтобы настроить FTP и организовать работу файлового сервера, доступного ограниченному кругу лиц.
Виды и типы серверов
Многообразие задач, которые ставятся перед серверами, обусловило большое количество видов и типов этого оборудования. IT-специалисту стоит ориентироваться в существующих разновидностях и понимать назначение и особенности каждой из них.
Web-сервер
Это — пожалуй, наиболее распространённая разновидность, с которой имеет дело каждый пользователь Интернета. На web-серверах хранится текстовый, графический, видео- и другой контент, из которого состоят интернет-сайты. Посетитель отправляет запрос, используя для этого браузер персонального компьютера или мобильного устройства, играющего роль клиента. Web-сервер даёт ответ в формате HTTP и отправляет клиенту данные. В результате посетитель видит на экране интересующий его сайт, переходит по страницам, отправляет через формы данные — словом, взаимодействует с web-сервером.
Игровой сервер
Эта машина обеспечивает взаимодействие игроков, запускающих одну и ту же игру в режиме мультиплеера и одновременно находящихся в виртуальном мире. Геймерам хорошо известны такие названия, как World of Tanks, Counter Strike, DotA, World of Warcraft и многие другие. Во всех случаях речь идёт именно об игровых серверах, причём в случае с известными играми они являются весьма и весьма мощными, ведь им приходится выдерживать немалые нагрузки.
Видеосервер
Как легко понять по его названию, он используется для хранения видеороликов — фильмов, клипов и многих других. Пользователь, обращаясь к видеосерверу со своего устройства, получает возможность смотреть видео, не скачивая его и не расходуя собственное дисковое пространство. При упоминании видеосерверов в первую очередь вспоминается крупнейший ресурс, известный, пожалуй, каждому — YouTube.
Сервер локальной сети
Так называется машина, к которой организован ограниченный доступ — например, внутри корпоративной сети, развёрнутой на предприятии. Благодаря её наличию сотрудники, находясь на разных (и нередко весьма удалённых) рабочих местах, могут одновременно использовать информацию — например, бухгалтерскую базу данных. Такой сервер позволяет общаться по рабочим вопросам, отслеживать выполнение поручений, решать многие другие задачи.
Почтовый сервер
Применяется для хранения электронной почты, пересылки писем, фильтрации спама, сортировки электронных писем по категориям, решения других задач, связанных с использованием e-mail. В числе наиболее известных сервисов, позволяющих воспользоваться почтовыми серверами — Mail, Yandex, Gmail, ряд других. Такую возможность дают и хостинг-провайдеры, которые создают электронные ящики на персональных доменах пользователей.
FTP-сервер
Используется для хранения файлов и удалённого доступа к ним по FTP — File Transfer Protocol. В зависимости от назначения и масштаба сервера доступ может быть реализован как через Интернет, так и по локальной сети. Если в случае с web-сервером пользователи работают в браузерах, то в данном случае удобнее всего применять специализированные программы для передачи файлов — например, Filezilla.
DNS-сервер
Что такое адрес сервера в сети, то есть его IP-адрес? Это — набор из нескольких групп цифр, разделённых точками. Зная его, можно открыть сайт, скачать файлы, решить другие задачи, связанные с доступом к серверу. Есть проблемы: набор цифр гораздо сложнее запомнить, к тому же он изменится при переезде сайта на другой хостинг. Они решаются с помощью доменных имён — проще говоря, привычных каждому адресов веб-сайтов. Связь между IP-адресами и доменными именами обеспечивают DNS-серверы. Они нужны для автоматического определения упомянутых выше наборов цифр при вводе пользователями адресов сайтов.
VPN-сервер
Это оборудование обеспечивает работу виртуальной сети, которая позволяет зашифровать и защитить персональные данные пользователей. Последние могут пользоваться общедоступным каналом связи, то есть Интернетом, однако благодаря VPN-серверу оставаться при этом внутри защищённой частной сети.
Прокси-сервер
Одна из функций этого серверного оборудования — кэширование (сохранение на локальном диске) информации, полученной из Интернета. При повторном обращении прокси-сервер отдаёт сохранённые данные пользователю, делая ненужным очередной выход во всемирную сеть и экономя трафик.
Что такое сервер и как он работает
Каждый сайт, который вы посещаете, каждое отправленное в интернете письмо, каждый персонаж в игровой вселенной любимой MMO – все эти цифровые сущности живут на серверах. Давайте разберемся, что представляют собой серверы и почему так важны для работы всего интернета.
Разбираем понятие «сервер»
Изначально сервером называли приложение или процесс, запущенный на компьютере. Термин появился в 1969 году в документации, описывающей ARPANET (это предшественник интернета). Он произошел от слова serving, то есть «служить», которое хорошо описывает деятельность сервера в общих чертах.
Со временем термин немного расширился и теперь описывает любое устройство, на котором запущены серверные приложения. То есть те, что обслуживают пользователей в той или иной стези.
Если говорить чуть более ясно, то это ПК, который беспрерывно работает и выступает в качестве площадки для разработки, базирования сетевых шлюзов, создания игровых платформ или хранения данных на постоянной основе.
Такие устройства делятся на категории по различным параметрам. В связи с этим обретают новые имена. Например, VDS, VPS, виртуальный хостинг. О том, что эти названия под собой подразумевают, поговорим позже. Говорю об этом, чтобы вы не смущались, если в дальнейшем буду называть сервер просто компьютером, VPS или «машиной».
Для чего нужны серверы?
Основное направление — поддержка интернет-ресурсов. Количество задач, возлагаемых на сервер велико. Вот несколько сценариев, в которых необходимы подобные устройства:
Почему их никогда не выключают?
Все описанные выше задачи подразумевают наличие аппаратной и программной платформы, которая постоянно находится в активном состоянии, обеспечивает высокую скорость и достаточную стабильность, чтобы сайты, приложения, почта и видеоигры неожиданно не отключались. Весь интернет держится на таких компьютерах.
Люди всегда хотят играть в любимые ММО, круглосуточно переписываются по электронной почте, работают и заходят на сайты. Это не физический магазин или компьютерный клуб. Нельзя просто взять и закрыть сайт на ночь и открыть к утру. Они должны быть доступны круглосуточно, а любое временное отключение считается критической ошибкой администрации ресурса, которая сильно бьет по репутации.
На серверы полагаются банковские службы, мессенджеры, такси, сервисы доставки еды, курьеры, государственные службы. Можно представить себе масштаб трагедии, если какой-то из удаленных компьютеров, поддерживающих инфраструктуру страны, вырубится.
Поэтому ими занимаются профессиональные компании, называемые хостинг-провайдерами. Они закупают мощное «железо», нанимают команду инженеров, обслуживающих все накупленное, и обеспечивают людей бесперебойным доступом к нужному им оборудованию.
Типы серверов
Есть несколько вариантов разделения серверов на группы. Мы рассмотрим две конкретные системы сортировки.
По назначению
По техническим характеристикам
Теперь разберемся, почему серверы имеют разные названия.
Физический выделенный сервер
Первичный вариант. Компьютер, который расположен в хостинге. Полноценный ПК. Мало чем отличающийся от того, что стоит у вас дома. Разве что он мощнее и никогда не выключается. Любой тип сервера в плане назначения может базироваться на таком PC.
Блейд-сервер
Примерно то же самое, только в ультракомпактном корпусе. Это попытка выдать каждому арендатору полноценное выделенное «железо», но при этом сократить издержки. Это делается за счет общего питания и некоторых других компонентов, которые можно делить между клиентами.
Виртуальный хостинг
Общее пространство на одном компьютере, которое регулируется единственным администратором и предлагает клиентам пользоваться ресурсами выбранной машины дешевле, но вместе с тем лишиться ряда функций и независимости.
VDS
Виртуальный выделенный сервер. Имитация реального «железа» с помощью гипервизора. Каждый арендатор получает практически полноценный ПК, несмотря на то, что чисто технически и физически это не так. Ограничений VDS практически не имеет. Можно ставить Windows Server и даже контролировать параметры BIOS.
VPS
То же самое, что и VDS. Только с иной технологией виртуализации. Более дешевой и ограниченной даже в плане программного обеспечения. Сюда нельзя установить Windows, только дистрибутивы Linux.
Как другие компьютеры подключаются к серверу?
VPS, VDS и любой другой сервер так же, как и обычные компьютеры, подключается к сети через кабельное соединение. Попав в интернет, он тут же становится доступен другим пользователям.
Подключение со стороны клиентов происходит разными путями в зависимости от того, что представляет собой сервер. Если на нем базируется веб-сайт, то в роли клиента выступает браузер, который через доменное имя подключается к VDS и получает от него нужную пользователю информацию. Доменное имя, естественно, моментально транслируется в стандартный IP-адрес. И адрес может оставаться прежним, даже если домен был в какой-то момент изменен.
В других случаях это работает похожим образом. Разве что аспекты работы программ, подключаемых к удаленным «машинам», могут слегка варьироваться.
Где находятся серверы?
Я уже упомянул выше хостинг-провайдеров. У них. Хостинг — это компания, которая фокусируется на обеспечении своих клиентов серверными мощностями. Обычно они арендуют крупное здание, в котором располагаются сотни и тысячи ПК с различными видами «железа» и виртуальными «машинами» на них.
Эти компьютеры надежно охраняются наемной охраной, датчиками движения, системами защиты от пожара и прочими решениями в зависимости от того, какие угрозы предвидит провайдер.
Программная защита тоже играет роль. Хостинг обязан сохранять конфиденциальность клиентов, оберегать их VDS от вирусов и атак извне. Регулярно делать резервные копии данных каждого арендатора, чтобы даже в случае форс-мажора можно было бы восстановить максимум полезной информации и файлов.
Также значимую роль играет геолокация. От расположения дата-центра зависит скорость работы проектов, базированных на удаленном ПК. Игровой сервер, расположенный в Варшаве, будет быстрее и стабильнее для жителей Европы, чем аналогичный в условном Мурманске. Ну и подчиняются такие серверы законам разных стран.
Можно ли использовать любой компьютер в качестве сервера?
Да. Хоть ноутбук в сервер превращайте. Всего-то надо установить подходящее программное обеспечение. Поставил FTP-клиент, вот тебе и хранилище файлов. Поставил ПО для старта игровых платформ, вот тебе очередная площадка для игры в World of Warcraft. С хостингом веб-сайтов ситуация аналогичная.
Правда, нужно учесть ряд моментов:
Отличия сервера от обычного компьютера
И тот, и другой работают на идентичной архитектуре процессора. Только в серверные «машины» устанавливается несколько гнезд под чипы. То есть на одной материнской плате «живут» 2, 3, 4, а то и более процессора. Также на них используется память с системой коррекции ошибок.
На них устанавливаются запасные компоненты с предохранителями. На тот случай, если один из сетевых кабелей выйдет из строя, его работу на себя возьмет второй. С блоками питания схожая история. Лишившись питания от него, ПК получит нужную энергию от запасного. Предусмотреть подобное в домашних условиях на обычном компьютере тяжело.
Визуально серверы тоже отличаются. В дата-центрах их монтируют в компактные блоки. Дизайн же домашних системных блоков не предусматривает портов, систем быстрой замены компонентов и других особенностей удаленных «машин».
Программное обеспечение тоже отличается. Нужна платформа, лицензированная для работы в качестве виртуальной машины. Ну и зачастую на них стоят дистрибутивы Linux без графической оболочки с минимальным необходимым набором приложений.
Как выбрать подходящий сервер?
Есть куча аспектов, на которые надо обращать внимание. Но я бы предложил положиться на хорошего хостинг-провайдера. Он знает свое дело. Предложит подходящее «железо», обеспечит необходимым программным обеспечением.
Можно зайти на главную страницу Timeweb и спокойно выбрать доступный вариант. Можно купить виртуальный хостинг, если грядет мелкий проект, не требующий особого контроля. Можно купить VDS, чтобы сэкономить на покупке выделенного сервера, но при этом получить доступ к расширенным функциям. Для тех, кто строит онлайн-магазин или собрался открывать игровой сервер, есть выделенные «машины». Причем все они учитывают современные реалии. Есть защита от DDoS-атак, ежедневное резервное копирование, круглосуточная техподдержка и физическая защита дата-центров от любой неприятности.
Так что в первую очередь обращайте внимание на репутацию хостинга. Затем рассматривайте его предложения и не беспокойтесь о других технических аспектах.
Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
Создаем свой сайт. Как устроен и работает веб-сервер
Если не знаешь с чего начать, то начинать надо сначала. Чтобы не запутаться во всем многообразии современных веб-технологий нужно обратиться к истории, чтобы понять, с чего начинался современный интернет и как развивались и совершенствовались технологии.
HTTP-сервер
На заре развития интернета сайты представляли собой простое хранилище специальным образом размеченных документов и некоторых связанных с ними данных: файлов, изображений и т.п. Для того, чтобы документы могли ссылаться друг на друга и связанные данные был предложен специальный язык гипертекстовой разметки HTML, а для доступа к таким документам посредством сети интернет протокол HTTP. И язык, и протокол, развиваясь и совершенствуясь, дожили до наших дней без существенных изменений. И только начавший приходить на смену принятому в 1999 году протоколу HTTP/1.1 протокол HTTP/2 несет кардинальные изменения с учетом требований современной сети.
Задача HTTP-сервера обработать запрос клиента и либо выдать ему требуемый ресурс, либо сообщить о невозможности это сделать. Рассмотрим следующую схему:
Пользователь посредством HTTP-клиента, чаще всего это браузер, запрашивает у HTTP-сервера некий URL, сервер проверяет и отдает соответствующий этому URL-файл, обычно это HTML-страница. Полученный документ может содержать ссылки на связанные ресурсы, например, изображения. Если их нужно отображать на странице, то клиент последовательно запрашивает их у сервера, кроме изображений также могут быть запрошены таблицы стилей, скрипты, исполняемые на стороне клиента и т.д. Получив все необходимые ресурсы браузер обработает их согласно кода HTML-документа и выдаст пользователю готовую страницу.
Долгое время одного веб-сервера было достаточно для реализации полноценного сайта. Но по мере роста сети интернет возможностей статического HTML стало остро не хватать. Простой пример: каждая статическая страница самодостаточна и должна содержать ссылки на все связанные с ней ресурсы, при добавлении новых страниц ссылки на них потребуется добавить на уже существующие страницы, иначе пользователь никогда не сможет попасть на них.
Сайты того времени вообще мало походили на современные, например, ниже показан вид одного из пионеров русскоязычного интернета, сайт компании Rambler:
А переход по любой из ссылок вообще может привести современного пользователя в недоумение, вернуться назад с такой страницы не представляется возможным, кроме как через нажатие одноименной кнопки в браузере.
Попытка создать что-то более-менее похожее на современный сайт очень скоро превращалась в нарастающий объем работ по внесению изменений в уже существующие страницы. Ведь если мы что-то поменяли в общей части сайта, например, логотип в шапке, то нам нужно внести это изменение на все существующие страницы. А если мы изменили путь к одной из страниц или удалили ее, то нам надо будет найти все ссылки на нее и изменить или удалить их.
Теперь, чтобы изменить логотип или пункт меню изменения надо будет внести всего лишь в один файл, вместо правки всех существующих страниц. Кроме того, SSI позволял выводить на страницы некоторое динамическое содержимое, например, актуальную дату и выполнять несложные условия и работать с переменными. Это был значительный шаг вперед, облегчавший труд вебмастеров и повышавший удобство пользователей. Однако реализовать по-настоящему динамический сайт данные технологии все еще не позволяли.
Стоит отметить, что SSI активно применяется и сегодня, там, где в код страницы нужно вставить некий статический контент, прежде всего благодаря простоте и нетребовательности к ресурсам.
Для передачи данных используются стандартные потоки ввода-вывода, от веб-сервера к СGI-приложению данные передаются через stdin, принимаются назад через stdout, для передачи сообщений об ошибках используется stderr.
Рассмотрим процесс работы такой системы подробнее. Получив запрос от браузера пользователя веб-сервер определяет, что запрошено динамическое содержимое и формирует специальный запрос, которой через интерфейс CGI направляет веб-приложению. При его получении приложение запускается и выполняет запрос, результатом которого служит HTML-код динамически сформированной страницы, который передается назад веб-серверу, после чего приложение завершает свою работу.
Получив запрос веб-приложение извлекает данные из БД и заполняет ими указанный в запросе шаблон. Результат отдается веб-серверу, который дополняет сформированную таким образом страницу статическим содержимым (изображения, скрипты, стили) и отдает ее браузеру пользователя. Сама страница при этом нигде не сохраняется, разве что в кэше, и при получении нового запроса произойдет повторная генерация страницы.
К достоинствам CGI можно отнести языковую и архитектурную независимость: CGI-приложение может быть написано на любом языке и одинаково хорошо работать с любым веб-сервером. Учитывая простоту и открытость стандарта это привело к бурному развитию веб-приложений.
На текущий момент CGI практически не применяется, так как ему на смену пришли более совершенные технологии.
FastCGI
Как следует из названия, основной целью разработки данной технологии было повышение производительности CGI. Являясь ее дальнейшим развитием FastCGI представляет собой клиент-серверный протокол для взаимодействия веб-сервера и сервера приложений, обеспечивающий высокую производительность и безопасность.
Также мы можем запустить на одном компьютере несколько FastCGI процессов, которые могут обрабатывать запросы параллельно, либо иметь различные настройки или версии скриптового языка. Например, можно одновременно иметь несколько версий PHP для разных сайтов, направляя их запросы разным FastCGI процессам.
Для управления FastCGI процессами и распределением нагрузки служат менеджеры процессов, они могут быть как частью веб-сервера, так и отдельными приложениями. Популярные веб-сервера Apache и Lighttpd имеют встроенные менеджеры FastCGI процессов, в то время как Nginx требует для своей работы c FastCGI внешний менеджер.
PHP-FPM и spawn-fcgi
Из внешних менеджеров для FastCGI процессов применяются PHP-FPM и spawn-fcgi. PHP-FPM первоначально был набором патчей к PHP от Андрея Нигматулина, решавший ряд вопросов управления FastCGI процессами, начиная с версии 5.3 является частью проекта и входит в поставку PHP. PHP-FPM умеет динамически управлять количеством процессов PHP в зависимости от нагрузки, перезагружать пулы без потери запросов, аварийный перезапуск сбойных процессов и представляет собой достаточно продвинутый менеджер.
Spawn-fcgi является частью проекта Lighttpd, но в состав одноименного веб-сервера не входит, по умолчанию Lighttpd использует собственный, более простой, менеджер процессов. Разработчики рекомендуют использовать его в случаях, когда вам нужно управлять FastCGI процессами расположенными на другом хосте, либо требуются расширенные настройки безопасности.
Внешние менеджеры позволяют изолировать каждый FastCGI процесс в своем chroot (смена корневого каталога приложения без возможности доступа за его пределы), отличном как от chroot иных процессов, так и от chroot веб-сервера. И, как мы уже говорили, позволяют работать с FastCGI приложениями расположенными на других серверах через TCP/IP, в случае локального доступа следует выбирать доступ через UNIX-сокет, как быстрый тип соединения.
На практике, выбирая между встроенным менеджером и внешним здраво оцените ситуацию и выбирайте именно тот инструмент, который наиболее подходит вашим запросам. Например, создавая простой сервер для нескольких сайтов на типовых движках применение внешнего менеджера будет явно излишним. Хотя никто не навязывает вам своей точки зрения. Linux тем и хорош, что каждый может, как из конструктора, собрать именно то, что ему надо.
SCGI, PCGI, PSGI, WSGI и прочие
Погружаясь в тему веб-разработки, вы непременно будете встречаться с упоминанием различных CGI-технологий, наиболее популярные из которых мы перечислили в заголовке. От такого многообразия можно и растеряться, но если вы внимательно прочитали начало нашей статьи, то знаете, как работает CGI и FastCGI, а, следовательно, разобраться с любой из этих технологий не составит для вас труда.
Несмотря на различия в реализациях того или иного решения базовые принципы остаются общими. Все эти технологии предоставляют интерфейс шлюза (Gateway Interface) для взаимодействия веб-сервера с сервером приложений. Шлюзы позволяют развязать между собой среды веб-сервера и веб-приложения, позволяя использовать любые сочетания без оглядки на возможную несовместимость. Проще говоря, неважно, поддерживает ли ваш веб-сервер конкретную технологию или скриптовый язык, главное, чтобы он умел работать с нужным типом шлюза.
И раз уж мы перечислили в заголовке целую пачку аббревиатур, то пройдем по ним более подробно.
Как несложно заметить, все перечисленные нами технологии являются в той или иной степени аналогами CGI/FastCGI, но для специфичных областей применения. Приведенных нами данных будет вполне достаточно для общего понимания принципа и механизмов их работы, а более глубокое их изучение имеет смысл только при серьезной работе с указанными технологиями и языками.
Сервер приложений как модуль Apache
Если раньше мы говорили о неком абстрактном веб-сервере, то теперь речь пойдет о конкретном решении и дело здесь не в наших предпочтениях. Среди веб-серверов Apache занимает особое место, в большинстве случаев, когда говорят о веб-сервере на платформе Linux, да и о веб-сервере вообще, то подразумеваться будет именно Apache.
Здесь нас могут упрекнуть, что Apache уже давно неактуален, все «реальные пацаны» уже поставили Nginx и т.д. и т.п., поэтому поясним данный момент более подробно. Все популярные CMS из коробки сконфигурированы для использования совместно с Apache, это позволяет сосредоточить все внимание на работу именно с веб-приложением, исключив из возможного источника проблем веб-сервер.
Все популярные среди новичков форумы тоже подразумевают в качестве веб-сервера Apache и большинство советов и рекомендаций будут относиться именно к нему. В тоже время альтернативные веб-сервера как правило требуют более тонкой и тщательной настройки, как со стороны веб-сервера, так и со стороны веб-приложения. При этом пользователи данных продуктов обычно гораздо более опытны и типовые проблемы новичков в их среде не обсуждаются. В итоге может сложиться ситуация, когда ничего не работает и спросить не у кого. С Apache такого гарантированно не произойдет.
Действительно, если запустить сервер приложений как модуль веб-сервера в общем адресном пространстве, то мы получим гораздо более простую схему:
Какие преимущества это дает? Чем проще схема и меньше в ней элементов, тем проще и дешевле сопровождать ее и обслуживать, тем меньше в ней точек отказа. Если для единичного сервера это может быть не так важно, то в рамках хостинга это весьма значительный фактор.
Развитие интернета привело к тому, что количество возможных веб-приложений (CMS, скриптов, фреймворков и т.п.) стало очень велико, а низкий порог вхождения привлек к сайтостроению большое количество людей без специальных технических знаний. В тоже время разные веб-приложения могли требовать различной настройки сервера приложений. Как быть? Каждый раз обращаться в поддержку?
Решение нашлось довольно просто. Так как сервер-приложений теперь часть веб-сервера, то можно поручить последнему управлять его настройками. Традиционно для управления настройками Apache помимо конфигурационных файлов применялись файлы httaccess, которые позволяли пользователям писать туда свои директивы и применять их к той директории, где расположен данный файл и ниже, если там настройки не перекрываются своим файлом httaccess. В режиме mod_php данные файлы позволяют также изменять многие опции PHP для отдельного сайта или директории.
Для принятия изменений не требуется перезапуск веб-сервера и в случае ошибки перестанет работать только этот сайт (или его часть). Кроме того, внести изменения в простой текстовый файл и положить его в папку на сайте под силу даже неподготовленным пользователям и безопасно для сервера в целом.
Сочетание всех этих преимуществ и обеспечило Apache столь широкое применение и статус универсального веб-сервера. Другие решения могут быть быстрее, экономичнее, лучше, но они всегда требуют настройки под задачу, поэтому применяются в основном в целевых проектах, в массовом сегменте безальтернативно доминирует Apache.
Заключение
Охватить в одной статье весь спектр современных технологий невозможно, поэтому мы сосредоточились только на основных из них, некоторые вещи умышленно оставив за кадром, а также прибегли к существенным упрощениям. Несомненно, начав работать в этой области вам потребуется более глубокое изучение темы, но для того, чтобы воспринимать новые знания нужен определенный теоретический фундамент, который мы постарались заложить данным материалом.
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал: