Использование nginx для предоставления отдельных виртуальных серверов SSH и HTTPS без мультиплексирования

Использование nginx для предоставления отдельных виртуальных серверов SSH и HTTPS без мультиплексирования
Использование nginx для предоставления отдельных виртуальных серверов SSH и HTTPS без мультиплексирования - thisisengineering @ Unsplash

Использование nginx для предоставления отдельных виртуальных серверов SSH и HTTPS без мультиплексирования является чистым и эффективным решением. Примером такого решения может быть веб-сервер с адресом web.myserver.com для HTTPS и сервер SSH с адресом ssh.myserver.com. В данном случае нет необходимости использовать дополнительные "stream заголовки".

nginx - это высокопроизводительный веб-сервер, который также может быть настроен для обработки протокола SSH и HTTPS на разных виртуальных серверах. Для достижения этой цели используются следующие шаги:

Шаг 1: Установка и настройка nginx

Первым шагом является установка nginx на сервер, который будет обслуживать SSH и HTTPS. Установите nginx, следуя официальной документации для вашей операционной системы. После установки следует открыть конфигурационный файл nginx.

sudo nano /etc/nginx/nginx.conf

В открывшемся файле найдите секцию "http" и добавьте следующие строки для создания двух виртуальных серверов:

http {
  server {
    listen 80;
    server_name web.myserver.com;

    # Конфигурация для HTTPS
    # ...
  }

  server {
    listen 22;
    server_name ssh.myserver.com;

    # Конфигурация для SSH
    # ...
  }
}

Здесь мы создаем два виртуальных сервера - один для протокола SSH, слушающий порт 22, и другой для HTTPS, слушающий порт 80.

Шаг 2: Настройка HTTPS виртуального сервера

Внутри блока конфигурации сервера HTTPS (web.myserver.com) необходимо добавить настройки для обработки HTTPS-запросов. Например, следующий код позволит использовать самозаверенный SSL-сертификат:

server {
  listen 80;
  server_name web.myserver.com;

  # Конфигурация для HTTPS

  listen 443 ssl;
  ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
  ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;

  location / {
    # Конфигурация для обработки запросов
  }
}

Вышеуказанный код добавляет конфигурацию SSL для сервера HTTPS, включая пути к самозаверенному SSL-сертификату.

Шаг 3: Настройка SSH виртуального сервера

Для настройки виртуального сервера SSH (ssh.myserver.com) в блоке конфигурации можно использовать следующий код:

server {
  listen 22;
  server_name ssh.myserver.com;

  # Конфигурация для SSH

  location / {
    # Конфигурация для обработки SSH-запросов
  }
}

Вышеуказанный код позволяет настроить сервер SSH для обработки SSH-запросов.

Шаг 4: Перезапустите nginx

После завершения настройки сохраните изменения в конфигурационном файле nginx и перезапустите сервер, чтобы применить новые настройки.

sudo service nginx restart

После перезапуска сервера nginx, ваш веб-сайт (web.myserver.com) будет доступен по протоколу HTTPS, а SSH-сервер (ssh.myserver.com) будет работать на порту 22.

Использование nginx для обслуживания SSH и HTTPS на отдельных виртуальных серверах без мультиплексирования является эффективным и безопасным решением. Приведенный выше пример поможет вам настроить ваш сервер с использованием этих решений.


NevaDev, 20 августа 2023 г., 06:04