Сервер — это узел, который принимает запросы от других программ и отвечает на них. Слово используют в трех разных смыслах, и их важно не путать: сервер-железо (физическая машина), сервер-программа (софт вроде nginx или PostgreSQL) и сервер-роль (логическая функция «отвечать на запросы»). Ниже разберу все три смысла, покажу принцип запрос-ответ с портами на рабочем примере, сведу виды серверов в таблицы и разграничу физический, виртуальный и облачный варианты.
Содержание
- Три смысла слова «сервер»
- Чем серверное железо отличается от домашнего ПК
- Принцип работы: клиент, сервер, запрос-ответ, порты
- Частые порты, которые стоит запомнить
- Серверный софт на примере nginx
- Виды серверов по назначению
- Физический, виртуальный и облачный сервер
- Выводы
- Где применяется / связь с практикой
- FAQ
Три смысла слова «сервер»
Мини-словарь, чтобы дальше не путать понятия:
- Сервер-железо — физический компьютер, собранный под круглосуточную нагрузку: серверные процессоры, память с коррекцией ошибок (ECC), дублированные блоки питания и сетевые карты, дисковые массивы. Обычно стоит в стойке в дата-центре.
- Сервер-программа — приложение, которое слушает сетевой порт и обрабатывает запросы: веб-сервер nginx, СУБД PostgreSQL, почтовый Postfix. Это и есть «серверный софт».
- Сервер-роль — логическая сторона в обмене «клиент — сервер». Именно роль, а не устройство: одна и та же машина бывает сервером для одних соединений и клиентом для других.
Практический вывод: чаще всего «сервер» означает роль и программу, а не именно мощное железо. На домашнем ноутбуке можно запустить веб-сервер nginx — и по роли это будет сервер, хотя железо осталось обычным ПК. Мощное серверное железо нужно не для того, чтобы «стать сервером», а чтобы держать высокую нагрузку и работать без простоев.
Чем серверное железо отличается от домашнего ПК
Персональный компьютер рассчитан на одного пользователя и на работу с перерывами. Серверная машина рассчитана на много одновременных клиентов и на непрерывную работу, поэтому у нее другие приоритеты:
- Отказоустойчивость важнее пиковой скорости: дублируются блоки питания, сетевые карты, диски в RAID-массиве. Вышел из строя один элемент — работу продолжает резервный.
- Память с коррекцией ошибок (ECC) ловит одиночные сбои бит, чего в бытовых ПК обычно нет.
- Форм-фактор под стойку: плоские корпуса, которые ставят в шкафы-стойки, чтобы уплотнить размещение, питание и охлаждение.
Это не жесткая граница: маломощная роль сервера прекрасно живет и на обычном железе. Серверное железо — про надежность под нагрузкой, а не про сам факт «серверности».
Принцип работы: клиент, сервер, запрос-ответ, порты
Клиент-серверная модель — это распределение ролей. Клиент формирует запрос, сервер-программа его принимает, обрабатывает и возвращает ответ. Сервер при этом пассивно «слушает» заранее назначенный порт и ждет входящих соединений.
Сквозная линия на одном примере — открытие сайта в браузере:
- Браузер (клиент) резолвит имя
example.comв IP-адрес через DNS. - Браузер открывает соединение к этому IP на порт 443 (HTTPS) и шлет HTTP-запрос
GET /. - Веб-сервер (например, nginx), который слушает порт 443, принимает запрос, готовит ответ (HTML-страницу).
- Сервер возвращает ответ с кодом состояния (200 — успех, 404 — страница не найдена, 500 — ошибка на сервере).
Порт нужен, чтобы на одном IP-адресе уживалось несколько серверных программ: веб-сервер на 443, база на 5432, SSH на 22. Адрес приводит к машине, порт — к конкретной серверной программе на ней.
Соберу минимальный рабочий сервер на Python, чтобы увидеть запрос-ответ вживую. Стандартный модуль http.server уже содержит простой веб-сервер:
from http.server import HTTPServer, BaseHTTPRequestHandler
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header("Content-Type", "text/plain; charset=utf-8")
self.end_headers()
self.wfile.write("Привет от сервера".encode("utf-8"))
server = HTTPServer(("127.0.0.1", 8000), Handler)
print("Слушаю порт 8000, жду запросы")
server.serve_forever()
Запускаю (проверено на Python 3.14). В консоли сервер сообщает, что слушает порт:
Слушаю порт 8000, жду запросы
Теперь из второго терминала выступаю клиентом — шлю запрос тем же протоколом HTTP:
curl http://127.0.0.1:8000/
Ответ приходит от нашего обработчика do_GET:
Привет от сервера
Здесь видны все элементы модели: программа заняла порт 8000 и стала сервером по роли; curl сыграл клиента; прошел цикл запрос-ответ. Обратите внимание на адрес 127.0.0.1 (localhost) — сервер доступен только с этой же машины, наружу в сеть он не выставлен. Это учебный пример: у него нет ни ограничения числа соединений, ни TLS, ни аутентификации, поэтому в реальную сеть такой сервер не выставляют.
Частые порты, которые стоит запомнить
| Порт | Сервис | Назначение |
|---|---|---|
| 22 | SSH | удаленный доступ к серверу и управление |
| 25 | SMTP | пересылка почты между серверами |
| 53 | DNS | разрешение имен в IP-адреса |
| 80 | HTTP | веб без шифрования |
| 443 | HTTPS | веб поверх TLS (шифрование) |
| 5432 | PostgreSQL | подключение к базе данных |
Это распространенные значения по умолчанию, а не жесткое правило: администратор может повесить сервис на другой порт.
Серверный софт на примере nginx
Веб-сервер — это программа, а не «сайт». Задача nginx или Apache httpd — принять HTTP-запрос и отдать нужный ответ: файл с диска, ошибку 404 или проксировать запрос дальше в приложение. Минимальный смысловой блок конфигурации nginx выглядит так:
server {
listen 80;
server_name example.com;
root /var/www/html;
location / {
try_files $uri $uri/ =404;
}
}
Разбор по строкам: listen 80 — слушать порт 80; server_name — для какого домена этот блок; root — откуда брать файлы; location / с try_files — искать запрошенный файл, а если его нет, вернуть 404 вместо тишины. nginx и Apache решают одну задачу по-разному: nginx исторически про событийную модель и раздачу статики/проксирование, Apache — про гибкую модульность и .htaccess. Для новичка достаточно понимать, что оба — это серверный софт, слушающий порт.
Даже на учебном сервере первым делом настраивают защиту, а не только «чтобы отвечал»: закрывают лишние порты фаерволом, включают HTTPS (порт 443, сертификат TLS), не пускают анонимный доступ к внутренним сервисам, ограничивают права пользователя, от имени которого работает процесс. Публичный сервис без этих шагов — это открытая дверь.
Виды серверов по назначению
Один и тот же физический сервер может совмещать несколько ролей, но удобнее разделять их по решаемой задаче:
| Вид | Что делает | Типовой софт |
|---|---|---|
| Веб-сервер | отдает страницы и статику по HTTP/HTTPS | nginx, Apache httpd |
| Сервер БД | хранит данные и выполняет запросы к ним | PostgreSQL, MySQL |
| Почтовый | принимает и пересылает письма (SMTP/IMAP) | Postfix, Dovecot |
| Файловый | дает общий сетевой доступ к файлам | Samba, NFS |
| DNS-сервер | переводит имена доменов в IP-адреса | BIND, Unbound |
| Прокси-сервер | посредник между клиентом и другими серверами | nginx, HAProxy, Squid |
| Игровой | синхронизирует состояние многопользовательской игры | зависит от конкретной игры |
Как выбирать при чтении такой таблицы: сначала называете задачу («нужно отдавать сайт», «хранить данные», «раздавать файлы»), а под нее подбираете вид сервера и софт, а не наоборот.
Физический, виртуальный и облачный сервер
Это разрез не по назначению, а по способу, которым сервер получает вычислительные ресурсы:
| Признак | Физический (bare metal) | Виртуальный (VPS/VM) | Облачный |
|---|---|---|---|
| Что это | отдельная железная машина целиком | виртуальная машина на гипервизоре, делит одно железо с соседями | ресурсы, выделяемые по запросу у провайдера |
| Изоляция | полная, железо ваше | логическая, соседи делят хост | логическая, управляется провайдером |
| Масштабирование | купить и смонтировать железо | изменить лимиты ВМ | добавить ресурсы за минуты |
| Оплата | разовые затраты плюс обслуживание | фиксированная за ВМ | за фактическое потребление |
| Когда брать | стабильная высокая нагрузка, особое железо | предсказуемый проект средней нагрузки | переменная нагрузка, быстрый старт |
Упрощенно облачный сервер — это тоже чаще всего виртуальная машина, но с оговоркой: облако добавляет к ней эластичную оплату по потреблению и управляемые сервисы (готовые БД, балансировщики, резервное копирование). Одноплатные компьютеры вроде Raspberry Pi — тоже физические серверы, только маломощные: их берут под датчики «умного дома» и учебные проекты из-за низкого энергопотребления, а не под серьезную нагрузку.
Выводы
- Слово «сервер» имеет три смысла: железо, программа (софт) и роль в обмене. Чаще всего речь про роль и программу, а не про мощное железо.
- Основа работы — клиент-серверная модель: клиент шлет запрос, серверная программа слушает порт и возвращает ответ с кодом состояния.
- Порт указывает на конкретную серверную программу на машине; типовые значения (80, 443, 22, 53) — это умолчания, а не догма.
- Виды серверов удобно делить по назначению (веб, БД, почта, файлы, DNS, прокси, игры) и отдельно по способу получения ресурсов (физический, виртуальный, облачный).
- Публичный сервер настраивают вместе с защитой: фаервол, HTTPS, ограничение прав и доступа, а не только «чтобы отвечал».
Где применяется / связь с практикой
Серверами занимаются системные администраторы и DevOps-инженеры, а веб-разработчики и бэкендеры настраивают серверный софт под свои приложения. На практике почти все это — Linux: подавляющее большинство веб-серверов и облачных машин работает под Linux, поэтому вход в тему начинается с командной строки, пакетов, прав доступа и настройки сервисов вроде nginx.
Освойте тему на практике
Если хочется перейти от определения к практике — поднять свой сервер, настроить веб-сервер и разобраться с сетью и правами, — системный старт дает курс Linux для начинающих. Посмотреть формат и живое занятие с преподавателем можно на бесплатных открытых уроках Otus — удобный способ понять, подходит ли тема, до старта обучения.
FAQ
Сервер и хостинг — это одно и то же?
Нет. Сервер — это машина или программа, которая отвечает на запросы. Хостинг — услуга: провайдер сдает вам ресурсы сервера (или его часть) в аренду и обслуживает железо. Хостинг предоставляет сервер, но не равен ему.
Можно ли сделать сервер из старого домашнего компьютера?
Да, по роли и софту — достаточно установить серверную программу и открыть доступ по сети. Но под постоянную нагрузку такой сервер уступает специализированному железу: нет резервирования питания и дисков, памяти ECC, поэтому для учебы это подходит, а для ответственного сервиса — нет.
Сервер обязательно подключен к интернету?
Нет. Сервер работает и в изолированной локальной сети: файловый или сервер БД внутри офиса может вообще не иметь выхода в интернет. Интернет нужен только тем ролям, которые обслуживают внешних клиентов.



