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;
    }
}