Ինչպե՞ս տեղադրել և կարգավորել Nginx-ը Ubuntu 20.04-ում:


Nginx-ը բաց կոդով վեբ սերվերի հանրաճանաչ ծրագիր է, որը կարող է օգտագործվել որպես հակադարձ վստահված անձ, բեռնման հավասարակշռող, HTTP քեշ և այլն: Այն հայտնի է իր արագությամբ և մասշտաբայնությամբ և լայնորեն օգտագործվում է վեբ բովանդակությունը բարձր տրաֆիկ կայքերի համար:

Եթե դուք աշխատում եք Ubuntu 20.04 սերվերով և ցանկանում եք օգտագործել Nginx-ը որպես ձեր վեբ սերվեր, այս ուղեցույցը ձեզ կուղեկցի տեղադրման և հիմնական կազմաձևման գործընթացին:

Քայլ 1. Համակարգի թարմացում

Նախքան սկսելը, լավ գաղափար է թարմացնել համակարգը՝ համոզվելու համար, որ բոլոր փաթեթները թարմացված են: Դուք կարող եք դա անել՝ գործարկելով հետևյալ հրամանը −

sudo apt update && sudo apt upgrade -y

Սա կթարմացնի փաթեթների ցանկը և կտեղադրի հասանելի բոլոր թարմացումները:

Քայլ 2. Տեղադրեք Nginx

Այժմ այդ համակարգը արդիական է, կարող եք շարունակել Nginx-ի տեղադրումը: Դուք կարող եք դա անել՝ գործարկելով հետևյալ հրամանը −

sudo apt install nginx -y

Սա կտեղադրի Nginx-ի վերջին տարբերակը ձեր Ubuntu 20.04 սերվերի վրա:

Քայլ 3. Կարգավորեք Nginx-ը

Nginx-ը տեղադրվելուց հետո կարող եք սկսել այն կարգավորել ձեր վեբ բովանդակությունը սպասարկելու համար: Լռելյայնորեն, Nginx-ը կսպասարկի բովանդակությունը, որը գտնվում է /var/www/html գրացուցակում: Դուք կարող եք ստուգել, որ Nginx-ը ճիշտ է աշխատում՝ այցելելով ձեր սերվերի IP հասցեն վեբ բրաուզերում:

Nginx-ը ձեր սեփական բովանդակությունը սպասարկելու համար կարգավորելու համար դուք պետք է ստեղծեք նոր կազմաձևման ֆայլ /etc/nginx/sites-available գրացուցակում: Դուք կարող եք դա անել՝ ստեղծելով նոր ֆայլ ձեր նախընտրած տեքստային խմբագրիչով, օրինակ՝ nano կամ vim:

sudo nano /etc/nginx/sites-available/example.com

Այս ֆայլում դուք կարող եք սահմանել ձեր սերվերի բլոկը, որը կպարունակի ձեր կայքի կոնֆիգուրացիա: Ահա հիմնական սերվերի բլոկի օրինակ −

server {
   listen 80;
   server_name example.com;
   root /var/www/example.com;
   index index.html;
}

Այս կոնֆիգուրացիան կարգավորում է սերվերը լսելու համար 80 նավահանգիստում և սպասարկում է բովանդակությունը /var/www/example.com գրացուցակից: Դուք կարող եք example.com-ը փոխարինել ձեր սեփական տիրույթի անունով, իսկ /var/www/example.com-ը՝ ձեր վեբ բովանդակության գտնվելու վայրով:

Ձեր կազմաձևման ֆայլը ստեղծելուց հետո ձեզ անհրաժեշտ կլինի ստեղծել խորհրդանշական հղում՝ այն միացնելու համար: Դուք կարող եք դա անել՝ գործարկելով հետևյալ հրամանը −

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Վերջապես, դուք կարող եք ստուգել ձեր կազմաձևը և վերագործարկել Nginx-ը՝ գործարկելով հետևյալ հրամանները -

sudo nginx -t

sudo systemctl վերագործարկեք nginx-ը

Եթե սխալներ չկան, ձեր վեբկայքը այժմ պետք է լինի ակտիվ և հասանելի ձեր տիրույթի անվան միջոցով:

Քայլ 4. Կարգավորել SSL/TLS

Եթե դուք տրամադրում եք զգայուն տեղեկատվություն կամ ընդունում եք օգտատիրոջ տվյալները, կարևոր է ապահովել ձեր կայքը SSL/TLS կոդավորումով: Դուք կարող եք դա անել՝ ստանալով SSL/TLS վկայագիր և կարգավորելով Nginx-ը՝ այն օգտագործելու համար:

SSL/TLS վկայական ստանալու հանրաճանաչ եղանակներից մեկը Let’s Encrypt-ն է՝ անվճար և բաց վկայականի մարմին: Դուք կարող եք տեղադրել Let’s Encrypt հաճախորդը ձեր սերվերում՝ գործարկելով հետևյալ հրամանները

sudo apt install certbot python3-certbot-nginx -y

Let’s Encrypt հաճախորդը տեղադրվելուց հետո կարող եք վկայագիր ստանալ ձեր տիրույթի համար՝ գործարկելով հետևյալ հրամանը -

sudo certbot --nginx -d example.com

Սա կգործարկի Let’s Encrypt հաճախորդը և կկարգավորի Nginx-ը՝ օգտագործելու նոր ստացված SSL/TLS վկայագիրը:

Ահա ևս մի քանի առաջադեմ կազմաձևման տարբերակներ, որոնք կարող եք հաշվի առնել Ubuntu 20.04-ում Nginx-ի հետ աշխատելիս.

Սերվերի բլոկների անհատականացում

Նախորդ բաժնում մենք ստեղծեցինք մի պարզ սերվերի բլոկ, որը սպասարկում է բովանդակություն կոնկրետ գրացուցակից: Այնուամենայնիվ, դուք կարող եք ունենալ բազմաթիվ տիրույթներ կամ ենթադոմեյններ, որոնք պետք է սպասարկվեն նույն սերվերից: Դա անելու համար դուք կարող եք ստեղծել լրացուցիչ սերվերի բլոկներ, որոնք սահմանում են կոնֆիգուրացիան յուրաքանչյուր տիրույթի կամ ենթադոմեյնի համար:

Օրինակ, ենթադրենք, որ դուք ունեք երկու տիրույթ՝ example.com և example.org: Դուք կարող եք ստեղծել երկու սերվերի բլոկ՝ մեկը յուրաքանչյուր տիրույթի համար և տեղադրել դրանք /etc/nginx/sites-available գրացուցակում։ Այնուհետև կարող եք ակտիվացնել յուրաքանչյուր սերվերի բլոկը՝ ստեղծելով խորհրդանշական հղումներ /etc/nginx/sites-enabled գրացուցակում:

sudo nano /etc/nginx/sites-available/example.com

server {
   listen 80;
   server_name example.com;
   root /var/www/example.com;
   index index.html;
}

sudo nano /etc/nginx/sites-available/example.org

server {
   listen 80;
   server_name example.org;
   root /var/www/example.org;
   index index.html;
}

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/example.org /etc/nginx/sites-enabled/

Քեշավորման ակտիվացում

Nginx-ը կարող է օգտագործվել նաև որպես քեշավորման սերվեր՝ ձեր կայքի աշխատանքը բարելավելու համար: Հաճախակի մուտք գործած բովանդակությունը քեշավորելով՝ Nginx-ը կարող է նվազեցնել ձեր վեբ սերվերի բեռը և բարելավել ձեր այցելուների արձագանքման ժամանակը:

Քեշավորումն ակտիվացնելու համար կարող եք ավելացնել հետևյալ կոնֆիգուրացիան ձեր սերվերի բլոկին −

server {
   listen 80;
   server_name example.com;
   root /var/www/example.com;
   index index.html;

   # Enable caching
   location / {
      proxy_cache_valid 200 60m;
      proxy_cache_bypass $http_pragma;
      proxy_cache_revalidate on;
      proxy_cache_min_uses 3;
      proxy_cache_use_stale error timeout invalid_header http_502;
      proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
      proxy_cache_key "$scheme$request_method$host$request_uri";
      proxy_cache_lock on;
      proxy_cache_methods GET HEAD POST;
      add_header X-Cache-Status $upstream_cache_status;
   }
}

Այս կոնֆիգուրացիան հնարավորություն է տալիս քեշավորել բոլոր հարցումները և սահմանում է քեշի գործողության ժամկետը մինչև 60 րոպե: Դուք կարող եք հարմարեցնել քեշի կարգավորումները՝ ձեր կայքի կարիքները բավարարելու համար:

Բեռների հավասարակշռում

Եթե ունեք բազմաթիվ վեբ սերվերներ, կարող եք օգտագործել Nginx-ը որպես բեռի հավասարակշռող՝ մուտքային տրաֆիկը սերվերների վրա բաշխելու համար: Սա կարող է բարելավել ձեր կայքի լայնածավալությունն ու հուսալիությունը:

Բեռի հավասարակշռումը միացնելու համար կարող եք ավելացնել հետևյալ կոնֆիգուրացիան ձեր սերվերի բլոկին −

server {
   listen 80;
   server_name example.com;
   root /var/www/example.com;
   index index.html;

   # Enable load balancing
   upstream backend {
      server backend1.example.com;
      server backend2.example.com;
   }

   location / {
      proxy_pass http://backend;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}

Այս կոնֆիգուրացիան սահմանում է «backend» անունով մի խումբ, որը ներառում է երկու սերվեր՝ backend1.example.com և backend2.example.com: տեղադրության բլոկը, այնուհետև վստահված անձը հարցումներ է անում հետին խմբին՝ բաշխելով երթևեկությունը երկու սերվերների վրա:

Սրանք ընդամենը մի քանի օրինակ են առաջադեմ կազմաձևման ընտրանքների, որոնք հասանելի են Nginx-ով: Ուսումնասիրելով պաշտոնական փաստաթղթերը և համայնքային ֆորումները, դուք կարող եք բացահայտել Nginx-ը ձեր հատուկ կարիքների համար հարմարեցնելու և օպտիմալացնելու շատ այլ եղանակներ:

Firewall-ի կոնֆիգուրացիա

Ինչպես ցանկացած սերվերի դեպքում, կարևոր է ապահովել, որ ձեր Ubuntu 20.04 սերվերն ապահովված է firewall-ով: Լռելյայնորեն, Ubuntu 20.04-ը գալիս է UFW-ով (Uncomplicated Firewall) նախապես տեղադրված:

Nginx-ի երթևեկությունը թույլատրելու համար դուք կարող եք կանոն ավելացնել UFW-ին, որը թույլ կտա HTTP տրաֆիկը 80-րդ նավահանգստում −

sudo ufw allow 80/tcp

Եթե դուք օգտագործում եք SSL/TLS կոդավորումը, կարող եք նաև ավելացնել կանոն, որը թույլ կտա HTTPS տրաֆիկը 443 նավահանգստում −

sudo ufw allow 443/tcp

Այս կանոնների առկայության դեպքում ձեր Ubuntu 20.04 սերվերը պետք է պատշաճ կերպով ապահովված լինի UFW-ով:

Մոնիտորինգ և գրանցում

Կարևոր է վերահսկել ձեր Nginx սերվերի կատարումը և հասանելիությունը՝ համոզվելու համար, որ այն սահուն է աշխատում: Դուք կարող եք օգտագործել տարբեր գործիքներ և ծառայություններ՝ վերահսկելու ձեր սերվերը, ներառյալ −

  • Nginx Amplify – Մոնիտորինգի և կառավարման գործիք, որը հատուկ նախագծված է Nginx-ի համար: Այն ապահովում է իրական ժամանակի կատարողականի չափումներ և ծանուցումներ ձեր Nginx սերվերի համար:

  • Netdata – Իրական ժամանակի մոնիտորինգի և անսարքությունների վերացման գործիք, որն ապահովում է մանրամասն չափումներ ձեր սերվերի տարբեր ասպեկտների վերաբերյալ, ներառյալ Nginx-ը:

  • Prometheus – Բաց կոդով մոնիտորինգի հանրահայտ լուծում, որը կարող է օգտագործվել Nginx-ի, ինչպես նաև այլ հավելվածների և համակարգերի մոնիտորինգի համար:

Մոնիտորինգից բացի, կարևոր է հետևել Nginx-ի կողմից ստեղծված մուտքի և սխալների մատյաններին: Այս տեղեկամատյանները կարող են արժեքավոր պատկերացումներ տալ ձեր կայքի վարքագծի վերաբերյալ և կարող են օգնել ձեզ լուծել խնդիրները:

Լռելյայնորեն, Nginx տեղեկամատյանները պահվում են /var/log/nginx գրացուցակում: Դուք կարող եք դիտել մուտքի մատյանը՝ գործարկելով հետևյալ հրամանը −

sudo tail -f /var/log/nginx/access.log

Դուք կարող եք դիտել սխալների մատյան՝ գործարկելով հետևյալ հրամանը -

sudo tail -f /var/log/nginx/error.log

Եզրակացություն

Այս ուղեցույցում մենք անցել ենք Ubuntu 20.04 սերվերի վրա Nginx-ի տեղադրման և կազմաձևման գործընթացը: Մենք սկսեցինք թարմացնելով համակարգը և տեղադրելով Nginx: Այնուհետև մենք կազմաձևեցինք Nginx-ը, որպեսզի սպասարկի մեր վեբ բովանդակությունը և փորձարկված կոնֆիգուրացիան: Վերջապես, մենք ապահովեցինք մեր կայքը SSL/TLS գաղտնագրմամբ՝ օգտագործելով Let’s Encrypt:

Հիշեք, որ սա պարզապես հիմնական կոնֆիգուրացիան է, և կան բազմաթիվ լրացուցիչ ընտրանքներ և մոդուլներ, որոնք կարող եք օգտագործել Nginx-ը ձեր հատուկ կարիքների համար հարմարեցնելու համար: Դուք կարող եք ավելին իմանալ Nginx-ի մասին՝ կարդալով պաշտոնական փաստաթղթերը կամ միանալով Nginx համայնքի ֆորումներին:

Ընդհանուր առմամբ, Nginx-ը հզոր և բազմակողմանի վեբ սերվերի ծրագիր է, որը կարող է կարգավորել վեբ հավելվածների և երթևեկության բեռների լայն շրջանակ: Հետևելով այս քայլերին, դուք կարող եք սկսել Nginx-ը ձեր Ubuntu 20.04 սերվերում և սկսել աշխարհին մատուցել ձեր վեբ բովանդակությունը: