Ինչպե՞ս տեղադրել և կարգավորել 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 սերվերում և սկսել աշխարհին մատուցել ձեր վեբ բովանդակությունը: