Nginx

Высокопроизводительный веб-сервер и reverse proxy

Reverse Proxy - Визуализация

🌐
Client
Отправляет запросы
Nginx
Reverse Proxy
🖥️
Backend Servers
3 сервера

Последние запросы:

Нажмите кнопку, чтобы отправить запрос

Что такое Nginx?

Nginx — это высокопроизводительный HTTP-сервер и reverse proxy, а также почтовый прокси-сервер.

Разработан Игорем Сысоевым в 2004 году. Известен своей высокой производительностью, стабильностью и низким потреблением ресурсов.

Ключевые возможности

  • Reverse proxy с кэшированием
  • Load balancing (балансировка нагрузки)
  • SSL/TLS терминация
  • Статический контент

Сценарии использования

Reverse Proxy

Проксирование запросов к backend-серверам с кэшированием и балансировкой нагрузки

Load Balancer

Распределение трафика между несколькими серверами для повышения отказоустойчивости

Static Server

Быстрая отдача статических файлов: HTML, CSS, JS, изображения

Load Balancer - Демонстрация

Алгоритм балансировки:

Server 1

Нагрузка0%
Запросов0

Server 2

Нагрузка0%
Запросов0

Server 3

Нагрузка0%
Запросов0
Round Robin: Запросы распределяются по очереди
Least Connections: Запрос идёт на сервер с наименьшим числом подключений
IP Hash: Один клиент всегда попадает на один и тот же сервер

Nginx Config Builder

Generated Config:
server {
    listen 80;
    server_name example.com;

    root /var/www/html;
    index index.html index.htm;


    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml;

    location / {
        try_files $uri $uri/ =404;
    }

    # Security headers
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-XSS-Protection "1; mode=block" always;

    # Logs
    access_log /var/log/nginx/example.com_access.log;
    error_log /var/log/nginx/example.com_error.log;
}

Основные команды

# Запуск Nginx
sudo systemctl start nginx
# Перезагрузка конфигурации
sudo nginx -s reload
# Проверка конфигурации
sudo nginx -t
# Остановка Nginx
sudo systemctl stop nginx
# Статус сервиса
sudo systemctl status nginx
# Просмотр логов
sudo tail -f /var/log/nginx/access.log