გამოიწერე YouTube-ის არხიyoutube logoგამოწერა
nginx-ის კონფიგურაცია (ჩემი ჩანაწერები)

nginx-ის კონფიგურაცია (ჩემი ჩანაწერები)

ვებგვერდის გაშვება რეალურ სერვერზე ზოგისთვის ძალიან რთული საქმეა, ასე იყო ჩემთვისაც, სერვერის კონფიგურაციისთვის დღესდღეობით ერთერთი ყველაზე გავრცელებული ვებ სერვერია nginx, მისი კონფიგურაციის ძირითადი პრინციპების ცოდნის გარეშე თითქმის შეუძლებელია.

nginx წარმოადგენს ღია კოდის პინციპზე დაფუძნებულ პროგრამულ უზრუნველყოფას, რომელიც შექმნილია Igor Sysoev-ის მიერ.

როგორც მოგეხსენებათ, val-do.com ჩემი პირველი პროექტია, რომელიც სრულიად ჩემს  მიერაა დაწერილი, როგორც frontend ასევე backend და ასევე სერვერის კონფიგურაციაზეც მე მომიწია შრომა.

ყველაზე რთული ნაწილი სერვერის კონფიგურაცია იყო, ამ დროს დავაგროვე გარკვეული ცოდნა nginx-ის კონფიგურაციასთან დაკავშირებით, რომელსაც ვეცდები გაგიზიაროთ.

nginx-ის ინსტალაცია

როგორც მოგეხსენებათ სერვერების 90%-ზე მეტი linux ოპერაციულ სისტემაზეა, შესაბამისად არ დავწვრილმანდები მისი ინსტალაციით, უბრალოდ დაგიტოვებთ მზა რესურსებს, რომლის დახმარებითაც შეძლებთ თქვენს სისტემაზე, Windows, Linux, Mac OS-ზე დააყენოთ nginx.

nginx-ის გამშვები ბრძანებები

nginx -s stop - გათიშვა
nginx -s quit - გამოსვლა
nginx -s reload - გადატვირთვა
nginx -s reopen - ხელახლა გახსნა ლოგ ფაილების

სახელების შეთანხმებები და ტერმინოლოგია

nginx როგორც სხვა პალიკაციები/ენები გამოირჩევა თავისი სპეციფიური სინტაქსით, ამ პარაგრაფში შევეცდები აგიხსნათ მოცემული შეთანხმებები

მაგალითი 1

http {
		server {
		}
}

მოცემული მაგალითი წარმოადგენს ბლოკებს, ანუ ბლოკები გამოიყოფა {} სიმბოლოებით, მაგალითში http არის ბლოკი, ასევე ამ ბლოკში მოთავსებულია
server ბლოკი

მაგალითი 2

server {
	listen 8080;
	root /data/mysite;
}

მაგალითი 2-ში წარმოსახული გვაქვს server ბლოკი, რომელშიც წერია შემდეგი რამ listen 8080, ერთ ხაზზე ჩაწერილი სიტყვა listen შემდეგ ე.წ. ჰარი (გამოტოვება) და 8080
ამ ჩანაწერს ეწოდება დირექტივები.

პ.ს. დირექტივა აუცილებლად უნდა სრულდებოდეს წერტილ მძიმით ;

მაგალითი 3

server {
	listen 8080;
	root /data/mysite;
}

იმ შემთხვევაში თუ ბლოკში ანუ {} ფრჩხილებში გვაქვს 1 დირექტივა მაინც მაშინ მას ეწოდება კონტექსტი, მესამე მაგალითში server-ს დავუძახებთ არა ბლოკს,
არამედ server კონტექსტს

ზუსტი დამთხვევები url-ებში და location კოტექსტი

ზუსტი დამთხვევებისთვის ე.წ. exact match-ისთვის გამოიყენება ტოლობის ნიშანი

მაგალითი 1

location = / {...}

ამ შემთხვევაში nginx შემომავალ მოთხოვნას გაუშვებს root მისამართზე ან პროექტზე, ანუ მაგალითად val-do.com-ზე ხოლო შიდა მისამართები შეგვიძლია საერთოდ
სხვა პორტზე ან პორექტზე გავუშვათ (შიდა მისამართებში იგულისხმება root-ის შემდეგი გვერდები, მაგალითად val-do.com/contact, val-do.com/courses)

მაგალითი 2

location / {...}

მაგალით 2-ში ყველა შემომავალი მოთხოვნა root მისამართზე, ანუ თუ ჩვენ გვაქვს საიტი მაგლითად val-do.com შემომავალი მოთხოვნა გაეშვება val-do.com-ზე
და ასევე ყველა შემდეგი მისამართი, ანუ val-do.com/contact, val-do.com/courses და ა.შ.

alias დირექტივა

გამოიყენება მაშინ, როდესაც გვინდა სტატიკური ასეტები კონკრეტულ url-ზე მიმართო.
მაგალითად თუ სერვერზე სტატიკური ასეტები გვაქვს შემდეგ დირექტორიაში /var/www/myproject/assets

პირობითად კოდში გვაქვს შემდეგი სურათი <img src="/assets/logo.png"/>, პროდაქშენზე გაშვებისას alias -ით შეგვიძლია
logo.png სერვერს წავაკითხინოთ /var/www/myproject/assets საქაღალდიდან

მაგალითი 1

location /assets {
	alias /var/www/myproject/assets
}

proxy_pass დირექტივა

გამოიყენება კონკრეტული url-ის გადამისამართებისთვის. მაგალითისთვის წარმოვიდგინოთ რომ სერვერზე გვაქვს რამდენიმე ლოკალჰოსტი გაშვებული სხვადასხვა პორტზე, მაგალითისთვის მთავარი პროექტი ეშევება localhost:3000 პორტზე, ამ დროს გაჩნდა საჭიროება, რომ localhost:3000/test  მისამართზე ჩავტვირთოთ საერთოდ სხვა პროექტი, რომელიც პირობითად localhost:4000 პორტზეა გაშვებული

მაგალითი 1

location /test {
	proxy_pass http://localhost:4000;
}

ამ მაგალითის მიხედვით მოხდება გადამისამართება localhost:3000/test-დან http://localhost:4000 პორტზე გაშვებულ პროექტზე

კურსები პროგრამირების შესახებ

HTML, CSS-ის სა...

HTML, CSS-ის საწყისი კურსი, დამწყებთათვის (deprecated - მოძველებული)

ჯავასკრიპტის (J...

ჯავასკრიპტის (Javascript) უფასო კურსი დამწყებთათვის

JavaScript-ის D...

JavaScript-ის DOM-ის კურსი დამწყებთათვის

TypeScript-ის კ...

TypeScript-ის კურსი დამწყებთათვის

Angular-ის კურს...

Angular-ის კურსი დამწყებთათვის

ეთიკური ჰაკინგი...

ეთიკური ჰაკინგის კურსი

HTML, CSS-ის კუ...

HTML, CSS-ის კურსი დამწყებთათვის

Reactjs-ის კურს...

Reactjs-ის კურსი დამწყებთათვის

ალგორითმები...

ალგორითმები

Node.js-ის უფას...

Node.js-ის უფასო კურსი დამწყებთათვის

უახლესი ბლოგები პროგრამირებაზე

ინგლისური ენის ...

ინგლისური ენის მნიშვნელობა პროგრამირების სამყაროში

როგორ ავაჩქაროთ...

როგორ ავაჩქაროთ საიტი, loading ატრიბუტის დახმარებით

nginx-ის კონფიგ...

nginx-ის კონფიგურაცია (ჩემი ჩანაწერები)

რა არის srcset ...

რა არის srcset ატრიბუტი და რესპონსიული სურათები?