Веб-сервер

Просмотров 1632
Сложность:

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

Речь в статье идёт именно о внешних веб-серверах, а не о бек-енде (например, node.js) приложений.

Простой пример работы веб-сервера: посетитель вводит адрес вашего сайта и, после обработки DNS-сервером (название сайта => ip-адрес), запрос переходит к компьютеру, где расположен сайт. Думаю, что вы поняли, что компьютером является сервер, который вам предоставляет хостинг.

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

В зависимости от метода реакция сервера на запросы меняется.

  • GET - получить
  • POST - создать/опубликовать
  • PUT/PATCH - обновить
  • DELETE - удалить

Запросы делаются по определенным адресам. Но результаты обработки запросов с разными методами отличаются даже если вы используете один адрес. Например, запросы к странице /test.html с методами GET и DELETE будут обрабатываться противоположно. Первый запрос получит в ответ содержимое страницы, а второй эту страницу удалит.

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

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

Apache и nginx

Apache выпустили в 1995 году. Долгое время он был самым популярным решением, но в последнее время его обошёл nginx. Оба эти решения предоставляют всю основную функциональность и отличаются лишь очень специфичными вещами, которые могут заинтересовать только узкоспециализированных специалистов.

Оба веб-сервера бесплатны. Оба отличаются высокой производительностью, но nginx немного быстрее. Самое интересное, что их можно использовать вместе для решения определенных задач (так называемый реверс-прокси). То есть запросы принимает сначала nginx, некоторые из них обрабатывает сам, а некоторые (более сложные) отдаёт Apache, получая потом от него ответ.

У каждого из этих веб-серверов есть основные файлы настроек. В ubuntu они хранятся внутри папки /etc и получить к них доступ с обычного виртуального хостинга вы не сможете. Особенность Apache в том, что там можно разрешить использовать настройки из файла, который лежит в папке с сайтом. Файл этот называется .htaccess. Основной файл настроек nginx называется nginx.conf. Более подробную информацию об этих файлах с примерами можно посмотреть в отдельной статье.

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

Сайт, на котором вы сейчас находитесь, использует веб-сервер nginx. Причём настроено реверс-прокси, так как сайт является приложением nuxt.js + node.js. То есть на локальном порте 3000 внутри сервера через менеджер процессов pm2 запущено приложение (данный сайт). А nginx принимает запросы от посетителей и отдаёт их локальному приложению. Приложение обрабатывает запросы и отдаёт ответы для nginx. Затем nginx уже отдаёт ответ вам, посетителям.

Цифры

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

Установка и настройка веб-сервера Apache или nginx на VDS/выделенный сервер - от 30 минут до 2 часов.

Видеоверсия

Автор: Александр Дергунов
Дата публикации: 20.12.2019 г.
Поделиться:

Настройка сервера

Доменное имя
926 просмотров926
Настройка сервера
Выбор и покупка, привязка к хостингу, поддомены.
Сложность:
Доменное имя - видео
Хостинг
1082 просмотров1082
Настройка сервера
Выбор и покупка, разновидности: виртуальный, VDS, статический.
Сложность:
Хостинг - видео
Веб-сервер
1632 просмотров1632
Настройка сервера
Основы HTTP-сервера, запросы, методы. Apache и nginx.
Сложность:
Веб-сервер - видео
Доступы к сайту
882 просмотров882
Настройка сервера
Как не потерять доступ к своему сайту, перечень доступов
Сложность:
Доступы к сайту - видео
SSL сертификат
850 просмотров850
Настройка сервера
Выбор и покупка сертификата, разновидности, установка.
Сложность:
SSL сертификат - видео
Ответ сервера
1136 просмотров1136
Настройка сервера
Коды ответа сервера, редиректы, заголовки.
Сложность:
Ответ сервера - видео
.htaccess + nginx.conf
904 просмотров904
Настройка сервера
Настройка конфигурационных файлов Apache и nignx.
Сложность:
Перенос сайта
736 просмотров736
Настройка сервера
Перенос на другой домен, хостинг или CMS.
Сложность:
Перенос сайта - видео
Базовые технические знания
575 просмотров575
Настройка сервера
Что нужно изучить SEO'шнику и интернет-маркетологу в первую очередь.
Сложность:
Главная страница энциклопедии
metrika