Sobes.tech
Junior

За какво се използва Nginx?

sobes.tech AI

Отговор от AI

Nginx е високопроизводителен асинхронен уеб сървър и обратен прокси сървър, използван за:

  1. Обслужване на статични файлове: Бърза и ефективна доставка на HTML, CSS, JavaScript, изображения и други статични ресурси. Благодарение на асинхронната си архитектура, той може да обработва голям брой едновременни връзки с ниска консумация на ресурси.
  2. Обратен прокси: Пренасочване на клиентски заявки към един или няколко бекенд сървъра (приложения, API) и връщане на отговорите към клиентите. Това позволява баланс на натоварването, подобряване на сигурността (скриване на вътрешната структура на мрежата) и изпълнение на SSL терминализация.
  3. Балансировка на натоварването: Разпределяне на входящите заявки между няколко сървъра за увеличаване на наличността и мащабируемостта на приложението. Поддържа различни алгоритми (например, round robin, least connections).
  4. Кеширане: Кеширане на статични и динамични ресурси за намаляване на натоварването върху бекендите и ускоряване на отговора.
  5. SSL/TLS терминализация: Декодиране на HTTPS трафика преди да бъде изпратен към бекенда, което намалява натоварването на сървърите за приложения и позволява централизирано управление на сертификатите.
  6. Компресия: Компресиране на данни (например, Gzip) преди изпращането им към клиента за намаляване на трафика и ускоряване на зареждането на страниците.
  7. Ограничение на скоростта на заявките: Защита на бекендите от пренатоварване чрез ограничаване на броя на заявките от отделен клиент за определен период от време.
  8. Уеб защитна стена (WAF): Основна защита срещу разпространени уеб атаки (например, SQL инжекции, XSS).
# Пример за конфигурация на Nginx за обслужване на статични файлове и проксиране на API

server {
    listen 80;
    server_name example.com; # Домейн име

    location / {
        root /var/www/html; # Път към статичните файлове
        index index.html;
    }

    location /api/ {
        proxy_pass http://backend_server:8080; # Проксирване на заявки към API към друг сървър
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}