Можно ли запускать несколько веб-сайтов на одном порту с использованием Nginx?

Нельзя запустить несколько веб-сайтов на одном и том же порту напрямую, так как порт — это уникальный идентификатор для сетевого соединения.

Короткий ответ

Что ответить на собеседовании

Нельзя запустить несколько веб-сайтов на одном и том же порту напрямую, так как порт — это уникальный идентификатор для сетевого соединения. Однако с помощью Nginx можно настроить виртуальные хосты (server blocks), которые позволяют обслуживать несколько сайтов на одном IP и порту (обычно 80 для HTTP или 443 для HTTPS).

Подробный разбор

Ответ с пояснениями

Нельзя запустить несколько веб-сайтов на одном и том же порту напрямую, так как порт — это уникальный идентификатор для сетевого соединения. Однако с помощью Nginx можно настроить виртуальные хосты (server blocks), которые позволяют обслуживать несколько сайтов на одном IP и порту (обычно 80 для HTTP или 443 для HTTPS).

Это достигается за счёт различия по имени хоста (Host header в HTTP-запросе). Nginx анализирует заголовок запроса и перенаправляет на соответствующий сайт.

Пример конфигурации для двух сайтов на одном порту 80:

server {
    listen 80;
    server_name site1.example.com;
    root /var/www/site1;
}

server {
    listen 80;
    server_name site2.example.com;
    root /var/www/site2;
}

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

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее