Типы веб-серверов

Как узнать локальный IP адрес

Но чтобы это сделать, нужно знать, какой у компьютера с веб-сервером IP адрес. Как уже было сказано, локальные IP раздаёт роутер. Локальные IP могут быть в следующих диапазонах:

  • 10.0.0.0 — 10.255.255.255
  • 100.64.0.0 — 100.127.255.255
  • 172.16.0.0 — 172.31.255.255
  • 192.168.0.0 — 192.168.255.255

Причём, если вы не меняли настройки роутера, чаще всего используется диапазон 192.168.0.0 — 192.168.255.255. Скорее всего, ваш компьютер имеет адрес вида 192.168.0.* или 192.168.1.*. Но какой именно?

В Windows чтобы узнать локальный IP адрес откройте командную строку (нажмите Win+x, и выберите Windows PowerShell). В открывшемся окне выполните команду

ipconfig

У вас, наверное, будет меньше сетевых устройств, но в любом случае, для всех из них будет выведена информация, в том числе IP адреса.

Мой компьютер имеет локальный IP адрес 192.168.0.90. Если я, например, в телефоне, подключённому по Wi-Fi к роутеру наберу в адресной строке 192.168.0.90, то откроется веб-страница моего локального веб-сервера, запущенного на компьютере (да, у меня там бардак):

Внимание: если у вас не получается открыть веб-сервер, хотя IP адрес введён правильно – попробуйте отключить файервол. Если это помогло, то файервол можно включить, но настройте исключение для 80 порта.. Всё довольно просто, но имеется проблема – после перезагрузки компьютера IP адрес, скорее всего, изменится

Т.е. чтобы вновь открыть локальный веб-сервер понадобится проверять IP адрес и сообщать его другим желающим посетить ваш локальный веб-сайт.

Всё довольно просто, но имеется проблема – после перезагрузки компьютера IP адрес, скорее всего, изменится. Т.е. чтобы вновь открыть локальный веб-сервер понадобится проверять IP адрес и сообщать его другим желающим посетить ваш локальный веб-сайт.

Как уже было сказано, локальный IP адреса «раздаёт» роутер. Адреса являются произвольными в рамках данной подсети.

Чтобы исправить ситуацию с постоянно меняющимся локальным IP, давайте познакомимся с такими понятиями как динамичный и статичный IP адреса.

Динамичный IP адрес выдаётся произвольно (роутером, Интернет-провайдером). Он может меняться при последующих подключениях.

Статичный IP адрес закреплён за сетевым интерфейсом (фактически, закреплён за компьютером, мобильным телефоном). Он не меняется при последующих переключениях.

В локальной сети, по умолчанию используются динамичные IP адреса, но это легко изменить.

Имеется, как минимум, два способа поменять динамичный локальный адрес на статичный локальный адрес:

  • в настройках сетевого интерфейса (на компьютере, в мобильном телефоне)
  • в настройках роутера

Не нужно делать изменения и там, и там – достаточно сделать настройки или на компьютере, или в роутере. Принципиальной разницы нет, какой именно метод вы будете использовать.

Как 3D-печать меняет мир

Перевод

Новая эпоха технической революции

С каждым годом 3D-печать становится всё более массовой. По данным исследовательской группы CONTEXT, в 2015 году был отгружен 500-тысячный 3D-принтер, а к 2017 году продано около миллиона устройств. 3D-печать уже внедряется в качестве производственной технологии. Например, в 2016 году компания General Electric стала продавать авиационные двигатели с топливными форсунками, напечатанными на 3D-принтере. Ракеты Атлас-5 с деталями, напечатанными той же технологией, запустили в космос. Бренды Under Armour и New Balance пустили в продажу небольшие партии спортивной обуви, частично напечатанной на 3D-принтере, а компания Organovo запустила коммерческую биопечать тканей почек человека.

Пока что, это только фундамент. За всю историю человечества было множество технологических революций, каждая из которых проходила через три фазы. Первой идёт «концептуализация», когда формируются видения и идеи, которые определяют дальнейший путь. Затем «реализация», в течение которой кажущиеся ранее невозможными замыслы начинают частично реализовываться. И третья фаза — «массовая коммерциализация», когда предприятия осваивают производство и применение новой технологии.

И на какой же фазе находится 3D-печать? Применение 3D-принтера для превращения цифрового файла в физический объект уже получило широкое распространение. Например, в таких областях как инженерия, право, экономика, бизнес, география и искусство. Уже ведутся споры о последствиях обмена цифровыми объектами через интернет, чтобы тут же распечатать их на принтере (допустим огнестрельное оружие). Очевидно, что мы ещё далеки от того дня, когда персональные 3D-принтеры положат конец капитализму, передав производство в руки большинства. Тем не менее, не остаётся сомнений в том, что революция в области 3D-печати добралась до второй фазы — реализации.

Различия между редакциями Windows Server 2016 и 2019

  • Hyper-V — это бесплатная редакция Windows Server, предназначенная только для запуска роли гипервизора Hyper-V. Его цель — быть гипервизором для вашей виртуальной среды. У него нет графического интерфейса. По сути, это урезанная версия Server Core. Вы будете использовать sconfig.cmd, чтобы включить гипервизор, а затем управлять средой с помощью диспетчера Hyper-V (как часть RSAT) с рабочей станции Windows 10 в вашей сети. Рекомендуется использовать именно эту редакцию для вашего гипервизора, чтобы сохранить чистоту и простоту лицензирования.
  • Essentials — идеально подходит как для малого и среднего бизнеса, так и для людей с потребностями в базовых функциях сервера. Графический интерфейс в значительной степени такой же, как и в Standard, за исключением мастера настройки Essentials.

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

Модель лицензирования
На базе процессора. Клиентские лицензии не требуются, но вы ограничены 25 пользователями и 50 устройствами, подключающимися к серверу.

Аппаратные ограничения
Essentials ограничен до 64 ГБ RAM и 2 CPU на компьютере, на котором он установлен.

Standard — идеально подходит для любой компании или для лиц, которым требуются расширенные функции, но при этом они не будут интенсивно виртуализироваться.

Права на виртуализацию
Разрешено запускать до двух виртуальных машин или контейнеров Hyper-V или один физический экземпляр со стандартной лицензией. Если вы используете роль Hyper-V только на физическом экземпляре, то можете использовать ее в качестве хоста Hyper-V, а затем разместить на этом хосте две виртуальные машины Hyper-V. Если вы хотите использовать несколько ролей на физическом экземпляре, вы не можете запускать виртуальную машину поверх с одной и той же лицензией.

Модель лицензирования
Основанная на ядре. Клиентские лицензии необходимы для каждого пользователя или устройства, которые подключаются косвенно или напрямую к серверу. Например, если вы используете сервер в качестве файлового сервера, вам потребуется лицензия CAL для каждой учетной записи пользователя или компьютера, которые обращаются к этому файловому серверу в сети.

Аппаратные ограничения
Стандарт ограничен максимум 24 ТБ оперативной памяти и 512 ядрами.

Datacenter — идеально подходит для любой компании с высокой степенью виртуализации. Вы приобретаете лицензию в зависимости от того, сколько ядер есть у ваших хостов, на которых может жить любая виртуальная машина с версией Datacenter (запускаться или потенциально запускаться после Vmotion). Это лицензирование, на первый взгляд, кажется дорогим, но оно позволяет создавать неограниченное количество виртуальных машин, работающих под управлением Datacenter на хостах, которые вы учитывали. Если у вас небольшое количество хостов (а впоследствии и ядер) и большое количество потенциальных виртуальных машин, тогда эта лицензия не представляет никакой сложности.

Права на виртуализацию
Неограниченное количество виртуальных машин или контейнеров Hyper-V. Как было озвучено выше, вы будете покупать лицензии в зависимости от того, сколько ядер у вас на хостах. На этом этапе вы можете запустить на хостах столько угодно виртуальных машин, используя любые роли.

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

Часть 1: делай раз, делай два, делай три!

1. Отправляемся на сайт https://www.apachefriends.org/ru/index.html, выбираем дистрибутив для нужной операционной системы, и загружаем его:

2. Запускаем инсталлятор и следуем инструкциям визарда. Наибольший интерес представляет шаг, на котором выбирается набор устанавливаемых компонентов:

Ясно, что нужно обязательно выбрать базовые элементы “тройки” – Apache + MySQL + PHP. Но в дополнение к этому можно установить ещё какие-то из предлагаемых компонентов:

  • FileZilla FTP Server – как следует из названия, это FTP-сервер, он может быть полезен, если, например, XAMPP устанавливается на виртуальную машину, тогда файлы устанавливаемых веб-приложений туда удобно будет загружать по протоколу FTP
  • Mercury Mail Server – опять таки, из названия ясно, что сервер для работы с электронной почтой, поддерживает протоколы POP3, IMAP, SMTP, но лично мне он кажется неудобным, поэтому я предпочитаю его не ставить, а использовать что-нибудь альтернативное
  • Tomcat – это сервер приложений для JavaEE, его имеет смысл устанавливать только в том случае, если вы собираетесь развёртывать веб-приложения, написанные на Java
  • Perl – язык программирования, который одно время был достаточно популярен среди веб-разработчиков, но в последнее время используется достаточно редко
  • phpMyAdmin – веб-интерфейс для управления СУБД MySQL, имеет смысл его установить, потому что для локального веб-сервера это, наверное, самый удобный способ конфигурирования СУБД MySQL
  • Webalizer – это веб-прилрожение для анализа лог-файлов сервера и сбора статистики, для локального веб-сервера вещь бесполезная, если только вы не собираетесь использовать эту информацию, например, при нагрузочном тестировании
  • Fake Sendmail – это “неполноценная” реализация утилиты sendmail для Windows, с большой вероятностью она вам не пригодится, потому что почту из веб-приложений обычно можно отправлять и без этой утилиты

3. После выбора компонентов на следующем шаге нужно выбрать директорию, в которую будет установлен XAMPP.

Рекомендуется использовать директорию, путь к которой не содержит пробелов и все названия директорий в этом пути в именах содержат только символы латинского алфавита или цифры. В общем, избегайте “плохих” символов в пути.

И после этого шага, наконец, начинается установка.

4. Когда процедура установки завершится, запускаем панель управления XAMPP.

В ней нужно активировать два модуля – Apache и MySQL, нажав две соответствующие кнопки Start:

Если всё пройдёт успешно, названия модулей окрасятся в зелёный цвет и станет активной кнопка Admin для каждого из них:

5. Осталось только зайти браузером по адресу http://localhost/ и убедиться, что веб-сервер действительно работает:

6. Затем зайти браузером по адресу http://localhost/phpmyadmin/ и убедиться, что СУБД MySQL тоже работает и доступна:

Теперь на сервер можно устанавливать веб-приложения.

Если у вас всё запустилось и в браузере открылась приветственная страница XAMPP – дальше можно не читать.

Вся оставшаяся часть статьи посвящена рассмотрению различных проблем и возможных методов их решения.

Пределы нагрузки

Веб-сервер (программа) имеет определенные ограничения нагрузки, поскольку он может обрабатывать только ограниченное количество одновременных клиентских подключений (обычно от 2 до 80 000, по умолчанию от 500 до 1000) на IP-адрес (и порт TCP), и он может обслуживать только определенное максимальное количество запросов в секунду (RPS, также известное как количество запросов в секунду или QPS) в зависимости от:

  • собственные настройки,
  • тип HTTP-запроса,
  • является ли контент статическим или динамическим,
  • является ли контент кешированным или сжатым , и
  • на аппаратные и программные ограничения операционной системы компьютера , на котором работает веб — сервер.

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

Причины перегрузки

В любой момент веб-серверы могут быть перегружены из-за:

  • Избыточный законный веб-трафик. Тысячи или даже миллионы клиентов подключаются к веб-сайту за короткий промежуток времени, например, эффект Slashdot ;
  • Распределенные атаки типа «отказ в обслуживании» . Атака отказа в обслуживании (DoS-атака) или распределенная атака типа «отказ в обслуживании» (DDoS-атака) — это попытка сделать компьютер или сетевой ресурс недоступным для предполагаемых пользователей;
  • Компьютерные черви, которые иногда вызывают аномальный трафик из-за миллионов зараженных компьютеров (не координированных между ними)
  • Черви XSS могут вызывать высокий трафик из-за миллионов зараженных браузеров или веб-серверов;
  • Интернет-боты. Трафик не фильтруется / не ограничивается на крупных веб-сайтах с очень небольшим количеством ресурсов (пропускная способность и т. Д.);
  • Интернет (сеть) замедляется, поэтому запросы клиентов обслуживаются медленнее, а количество подключений увеличивается настолько, что достигаются ограничения сервера;
  • Частичная недоступность веб-серверов ( компьютеров ). Это может произойти из-за необходимого или срочного обслуживания или обновления, сбоев оборудования или программного обеспечения, сбоев серверной части (например, базы данных ) и т.д .; в этих случаях оставшиеся веб-серверы получают слишком много трафика и становятся перегруженными.

Симптомы перегрузки

Симптомы перегруженного веб-сервера:

  • Запросы обслуживаются с (возможно, длительными) задержками (от 1 секунды до нескольких сотен секунд).
  • Веб-сервер возвращает код ошибки HTTP , например 500, 502, 503, 504, 408 или даже , что не подходит для состояния перегрузки.
  • Веб-сервер отклоняет или сбрасывает (прерывает) TCP- соединения, прежде чем он вернет какой-либо контент.
  • В очень редких случаях веб-сервер возвращает только часть запрошенного контента. Такое поведение можно считать ошибкой , даже если обычно оно возникает как симптом перегрузки.

Методы защиты от перегрузки

Чтобы частично преодолеть ограничения нагрузки выше среднего и предотвратить перегрузку, большинство популярных веб-сайтов используют общие методы, такие как:

  • Управление сетевым трафиком с помощью:
    • Брандмауэры для блокировки нежелательного трафика, поступающего из источников с плохими IP-адресами или имеющего плохие шаблоны
    • Менеджеры HTTP-трафика для отбрасывания, перенаправления или перезаписи запросов с плохими шаблонами HTTP.
    • Управление полосой пропускания и формирование трафика для сглаживания пиков использования сети
  • Развертывание методов веб-кеширования
  • Использование разных доменных имен или IP-адресов для обслуживания различного (статического и динамического) контента отдельными веб-серверами, например:
  • Использование разных доменных имен или компьютеров для отделения больших файлов от файлов малого и среднего размера; идея состоит в том, чтобы иметь возможность полностью кэшировать файлы малого и среднего размера и эффективно обслуживать большие или огромные (более 10 — 1000 МБ) файлы с использованием различных настроек
  • Использование множества интернет-серверов (программ) на каждом компьютере, каждый из которых привязан к своей сетевой карте и IP-адресу.
  • Использование множества интернет-серверов (компьютеров), которые сгруппированы вместе за балансировщиком нагрузки, так что они действуют или рассматриваются как один большой веб-сервер
  • Добавление дополнительных аппаратных ресурсов (например, ОЗУ , дисков ) на каждый компьютер
  • Настройка параметров ОС для аппаратных возможностей и использования
  • Использование более эффективных компьютерных программ для веб-серверов и т. Д.
  • Использование других обходных путей , особенно если задействован динамический контент

Установите и настройте PHP

Несмотря на высокую конкуренцию, PHP остаётся самым распространённым серверным языком программирования с продвинутыми объектно-ориентированными возможностями

4.1. Загрузите архив с последней версией PHP для 64–разрядной Windows: php-7.3.2-Win32-VC15-x64.zip. На всякий случай, проверьте на официальном сайте PHP нет ли версии новее: https://windows.php.net/download/.

Обратите внимание, что вам нужна версия Thread Safe, то есть работающая в нескольких потоках, и она должна точно соответствовать версии Visual Studio, с помощью которой был скомпилирован Apache, например — VC15. Разрядность тоже должна быть как у Apache, 64-битные версии обозначаются x64, а 32-битные — x86

4.2. Распакуйте архив и перенесите все его содержимое в папку D:\web\php.

4.3. Откройте файл D:\web\apache\conf\httpd.conf. Найдите секцию файла со множеством строк LoadModule и в самый ее конец добавьте две строки, первая — , и вторая — .

Отдельная секция настроечного файла Apache посвящена модулям, которые расширяют возможности сервера. Строки можно было бы указать где угодно, но принято указывать их в этой секции. Здесь мы дополняем функциональность сервера библиотекой PHP и указываем расширения файлов c этим языком — .php. Существуют еще сотни популярных и полезных модулей, серьезно улучшающих работу Apache.

4.4. В том же файле httpd.conf сразу после секции LoadModule добавьте строку .

Директивой PHPIniDir задается адрес файла php.ini. Этот файл содержит множество важных настроек самого PHP: допустимые размеры файлов для обработки, ограничения времени работы скриптов, параметры пользовательских сессий и многое другое.

4.5. В том же файле httpd.conf найдите и измените значение на . Сохраните файл httpd.conf с перезаписью.

4.6. Перезапустите Apache, откройте браузер и перейдите по адресу http://localhost/ или http://127.0.0.1/ — вы должны увидеть сведения о конфигурации PHP и Apache.

Это значит, что вы все сделали правильно.

4.7. Откройте файл D:\web\php\php.ini-development и сохраните его под именем D:\web\php\php.ini.

Изначально php.ini отсутствует из соображений безопасности, владелец сервера должен самостоятельно его создать и проверить.

4.8. В файле D:\web\php\php.ini найдите, раскомментируйте и отредактируйте следующие параметры: параметр , параметр , параметр , параметр , параметр (укажите свой часовой пояс в соответствии с документацией php.net/manual/ru/timezones.php). Сохраните php.ini и перезапустите Apache.

В то время как PHP работает как расширение Apache, у самого PHP также есть множество важных и полезных расширений в виде библиотек, многие из которых идут в комплекте с PHP; прежде чем подключать эти расширения необходимо указать их адрес в параметре extension_dir. По ходу работы большинства популярных скриптов создаются временные файлы, необходимо указать папку для этих файлов в параметре sys_temp_dir. Одно из самых востребованных расширений — mysqli, стандартная библиотека для PHP, которая позволяет подключаться к базам данных под управлением MySQL. При работе с базами нередко нужно разбивать или собирать строки из нескольких мегабайт, для чего будет полезна библиотека mbstring. Также не стоит забывать про свой часовой пояс — он указывается вручную. С этим минимальным набором вы можете выполнять скрипты на PHP, хотя локальной базы данных у вас ещё нет.

4.0. Обновить PHP легко. Переименуйте папку D:\web\php в php_old, распакуйте новую версию PHP в D:\web\php, перенесите php.ini из папки php_old в папку php. Если все работает — удалите php_old.

Многопользовательский режим в операционной системе Windows

Многопользовательский режим, может оказаться идеальным решением, в том случаи, когда за компьютером работает несколько человек. По сути, многопользовательский режим не является эксклюзивной функцией Windows, но именно эту операционную систему, чаще всего используют, как для видеоигр, так и для других работ.

Кроме того, в Windows достаточно качественно реализовали данную функцию, благодаря которой, на одной машине может работать сразу несколько учетных записей, то есть, не каждая по отдельности, а все разом. Например, один человек набирает текст в приложении Microsoft Office, и не закончив работу может просто переключить операционную систему на другую учетную запись, в которой другой пользователь будет играть в игру или смотреть видео, затем, человек может вернуться в свою УЗ, продолжая работу с места остановки.

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

Meta Gameplay Framework, или бэкенд без серверных разработчиков

Привет! Меня зовут Кирилл, я руководитель отдела серверной разработки в Pixonic. Здесь я работаю уже более 5 лет. Долгое время Pixonic была компанией одной игры — War Robots. Но однажды к нам пришло осознание, что так больше продолжаться не может, и мы начали работу над созданием новых проектов.
Поначалу мы взялись за это дело по старинке, используя традиционные для нас подходы: писали клиент на Unity 3D, бэкенд разрабатывали на Java. Это было привычно, понятно, но имело ряд серьезных недостатков. Проекты разрабатывались медленнее, чем нам бы хотелось. Для выполнения любой задачи необходимо было задействовать как минимум двух разработчиков. Однако, когда в разработке участвуют два и более человека, неизбежно возникают ошибки в духе: то один не так понял другого, то второй работает быстрее, чем первый. Такие ситуации приводят к тому, что кому-то из разработчиков в дальнейшем приходится возвращаться к задаче, которую он, казалось, уже давно закончил, а ведь у него и других дел полно. Так мы начали думать над тем, как разрешить эту проблему.

Заключение

Подведем итог того, что мы сделали:

  1. Настроили бэкап исходников сайтов и баз данных.
  2. Подготовили подменный web сервер.
  3. Перенесли на него исходники и базы данных.
  4. Развернули базы данных из дампов.
  5. Перенесли сертификаты сайтов.
  6. Подготовили конфиги nginx.
  7. Проверили работу резервного сайта и сервера.
  8. Автоматизировали заливку свежих версий сайтов.
  9. Настроили мониторинг резервных сайтов.

Осталось еще настроить мониторинг бэкапов и можно спать спокойно. В идеале еще и автопереключение сделать на резервный сервер, но механизм будет зависеть от конкретного случая. Если есть общий балансер, то можно переключать сервера на нем. Это удобно, но получается еще одна точка отказа (балансер), которую тоже надо резервировать. Как мне видится, лучше всего найти dns хостинг с api. Настроить ttl записи в 5-10 минут и менять автоматически ip в dns записи, если основной сервак с сайтом недоступен.

Скажу сразу, я автопереключение никогда не делал. Обычно падение прода это лютый форс-мажор, который случается раз в несколько лет. Держать постоянно наготове механизм автопереключения и тестировать его — отдельный труд. Для мелких и средних проектов это излишне. За года либо забудешь, как он работает, либо что-то сломается и в трудную минуту не отработает. Мне достаточно того, что есть живые актуальные бэкапы, и я смогу вручную переключиться на подменный сервер.

Онлайн курс «DevOps практики и инструменты»

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.

Проверьте себя на вступительном тесте и смотрите программу детальнее по .

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий