Добавить в корзинуПозвонить
Найти в Дзене

Реализация обратного прокси-сервера на NGINX и настройка аунтификации

Для настройки, сначала установим нужные нам пакеты:
apt-get install nginx apache2-htpasswd -y Создадим пользователя для аунтификации и пароль в зашифрованном виде для него:
htpasswd -c /etc/nginx/loging USER
*Вводим 2 раза пароль для него* Откроем конфигурационный файл для прокси nginx:
vim /etc/nginx/sites-available.d/default.conf
Приводим его в такой вид:
server {
listen 80;
server_name site.m-m.getto; # По какому адресу обращаются
location / {
proxy_pass http://"айпи нашего сайта":8080; # Куда отправляется запрос
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/loging; # Указываем файл с пользователем
}
} server {
listen 80;
server_name mediawiki.m-m.getto;
location / {
proxy_pass http://"айпи нашего сайта":8080;
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/loging;
}
} Создадим сим

Nginx — это высокопроизводительный веб-сервер и обратный прокси-сервер, предназначенный для обслуживания большого количества одновременных соединений с минимальным потреблением ресурсов. Он широко используется для публикации веб-сайтов, балансировки нагрузки, кэширования и организации проксирования запросов к backend-приложениям.

nginx работает по событийной (event-driven) архитектуре, в отличие от традиционной процессной модели, используемой в некоторых других веб-серверах. Это позволяет эффективно обрабатывать тысячи одновременных подключений в рамках одного или нескольких рабочих процессов.

В ALT Linux Nginx часто применяется как основной веб-сервер или как фронтенд перед backend-сервисами, такими как PHP-FPM, Node.js или Java-приложения.

Основные функции Nginx включают:

  • обслуживание статического контента (HTML, CSS, изображения);
  • обратное проксирование (reverse proxy);
  • балансировка нагрузки между серверами;
  • кэширование ответов backend-сервисов;
  • завершение TLS/SSL-соединений (HTTPS termination);
  • маршрутизация запросов к различным приложениям.

Архитектура Nginx основана на асинхронной обработке запросов. Один master-процесс управляет несколькими worker-процессами, каждый из которых способен обрабатывать большое количество соединений одновременно. Благодаря этому достигается высокая производительность и устойчивость под нагрузкой.

Конфигурация Nginx строится на основе декларативного подхода и состоит из:

  • основного конфигурационного файла;
  • блоков server (виртуальные хосты);
  • блоков location (правила обработки URL);
  • директив управления проксированием и кэшированием.

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

Nginx активно применяется:

  • в веб-хостинге;
  • для балансировки нагрузки;
  • в микросервисной архитектуре;
  • как reverse proxy перед backend-приложениями;
  • в CDN и высоконагруженных системах.

В ALT Linux Nginx устанавливается как системный сервис и управляется через systemd. После запуска он начинает слушать HTTP/HTTPS-порты и обрабатывать входящие запросы согласно заданной конфигурации.

Ниже приведён пример базовой настройки Nginx в ALT Linux, включая создание виртуального хоста и запуск веб-сервера.

ㅤㅤㅤㅤㅤㅤㅤ

Для настройки, сначала установим нужные нам пакеты:
apt-get install nginx apache2-htpasswd -y

Создадим пользователя для аунтификации и пароль в зашифрованном виде для него:
htpasswd -c /etc/nginx/loging USER
*Вводим 2 раза пароль для него*

Откроем конфигурационный файл для прокси nginx:
vim /etc/nginx/sites-available.d/default.conf
Приводим его в такой вид:
server {
listen 80;
server_name site.m-m.getto; # По какому адресу обращаются
location / {
proxy_pass http://"айпи нашего сайта":8080; # Куда отправляется запрос
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/loging; # Указываем файл с пользователем
}
}

server {
listen 80;
server_name mediawiki.m-m.getto;
location / {
proxy_pass http://"айпи нашего сайта":8080;
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/loging;
}
}

Создадим символьную ссылку для применения этой конфигурации nginx:
ln -s /etc/nginx/sites-available.d/default.conf /etc/nginx/sites-enabled.d/

Включим nginx и добавим его в автозагрузку:
systemctl enable --now nginx

Добавим записи в файл hosts на клиенте:
echo "айпи site.m-m.getto" >> /etc/hosts
echo "айпи mediawiki.m-m.getto" >> /etc/hosts