Next js-ის სერვერზე გამრთვა

სერვერზე ხელსაწყოების და პროგრამების დაყენება

პირველ რიგში, ჩვენ უნდა დავლოგინდეთ სერვერზე რისთვისაც უნდა გავუშვათ ბრძანება

ssh username@ipAdress

ამის შემდეგ ჩვენ უნდა გავუშვათ ბრძანება sudo apt update

ეს ბრძანება ფექიჯების შესახებ ინფორმაციას განაახლებს სერვერზე, იმისთვის რომ როცა ჩვენ დავწერთ sudo apt install something -ს, სერვერმა იცოდეს რა არის ეს something

ამის შემდეგ ჩვენ უნდა დავაყენოთ node ამის გაკეთება შეგვიძლია შემდეგი ბრძანებით:

curl https://deb.nodesource.com/setup_16.x | sudo bash

sudo apt install nodejs

ასევე გვჭირდება პროცესების მართვის ხელსაწყო pm2:

sudo npm --global install pm2

სერვერზე Next js-ის პროექტის გამრთვა

ჩვენ home საქაღალდეში შევქმნათ apps-ს საქაღალდე სადაც გვექნება აპლიკაციები რომლებსაც სერვერზე გავმართავთ, აპლიკაციების apps-ს საქაღალდეში შენახვა, home-ში შენახვასთან შედარებით უკეთეს პრაქტიკად ითვლება.

შემდეგ შევიდეთ apps საქაღალდეში და დავკლონოთ github-იდან რეპოზიტორია:

cd ~

mkdir apps

cd apps

git clone https://github.com/my-app.git

თუ ვნახავთ apps საქაღალდის შიგთავს: ls ბრძანებით ჩვენ დავინახავთ რომ ჩვენი პროექტი ჩამოიტვირთა, მოდი ეხლა შევიდეთ პროექტის საქაღალდეში და დავიწყოთ მისი გამართვა.

cd my-app

npm install

დეველოპმენტ გარემოში ეხლა უბრალოდ გავუშვებდით npm ruv dev-ს და ყველაფერი კარგად იქნებოდა, მაგრამ next js აქვს ასეთი ბრძაება

npm run build

რომელიც ჩვენ აპლიკაციის პროდაქშენის build-ს დააგენერირებს და ოპტმიზაციებს უკეთებს.

ამ ბრძანების გაშვების შემდეგ ჩვენ პროექტში უნდა დამატებოდა ერთი საქაღალდე სახელად build-ი, რომელის შიგთავსაც გამოვიყენებთ საიტის დომენზე გასამართად.

pm2-ის კონფიგურაცია

ისევე როგორც nodejs-ის პროექტის გამართვისას nextjs-ის დროსაც გვჭირდება pm2-ი, იგივე მიზეზების გამო რაც nodejs-ის პროექტში, იმიტომ რომ nextjs-ი full stack framework-ია და node-საც იყენებს, pm2-ის კონფიგურაცია აქაც ძალიან მარტივია,

npm run build
pm2 start --name=nextjs-example npm -- start

Nginx-ის კონფიგურაცია

ეხლა უკვე დროა რომ ჩვენი უკვე სერვერზე მყოფი პროექტი მსოფლიოსთვის მიღწევადი გავხადოთ, რისთვისაც უნდა გავმართოთ nginx-ი, მოდი მისი დაინსტალირებით დავიწყოთ:

sudo apt install nginx

სერვერზე შევიდეთ შემდეგ ფოლდერში:

cd /etc/nginx/sites-enabled

თუ ჩვენ ამ საქაღალდეში გავუშვებთ ls-ს ბრძანებას უნდა დავინახოთ default-ი ფაილი, რომელიც შეგვიძლია თამამად ამოშალოთ: sudo rm default და ჩვენი ახალი კონფიგურაციის ფაილი შევქმნათ:

sudo touch my-app.ge

ეს ფაილი უნდა გავხსნათ sudo nano my-app.ge -ი ბრძანებით და შიგნით ჩავწეროთ შემდეგი კონფიგურაცია:

server {
        listen 80;
        listen [::]:80;

        root /var/www/html;
        index index.html index.htm index.nginx-debian.html;

        server_name my-app.ge www.my-app.ge;

        location / {
                proxy_pass http://localhost:3000;
        }
}

location-ში ჩვენ ვეუბნებით რომ ყველა შემოსული მოთხოვნა გადაამისამართოს localhost:3000-ზე სადაც ჩვენ pm2-ს აქვს nextjs-ის პროექტი გაშვებული,

შემდეგ ეს ფაილი შევინხაოთ და გავუშვათ ბრძანება

sudo systemctl restart nginx

და ჩვენ თუ ვეწვევით http://my-app.ge -ს ჩვენ და ნებისნიერი ადამიანი დაინახავს ჩვენ პროექტს, მაგრამ ერთი რაღაც ჭირს ჩვენ საიტის, ის http-ზეა გამართული და შენმა ბრაუზერმა შეიძლება გაგაფრთხილა, რომ ეს საიტი არ არის უსაფრთხო, საბედნიეროდ https-ზე გამართვა ძალიან მარტივია.

SSL-ის დაყენება LetsEcrypt-ით

იმისთვის რომ LetsEncrypt-ის სერთიფიკატი დავაყენოთ ჩვენ საიტზე და ის უსაფრთხო გავხადოთ, რამოდენიმე ფექეჯი უნდა დავაინსტალიროთ:

sudo apt install certbot python3-certbot-nginx

შემდეგ გავუშვათ ბრძანება:

sudo certbot

და მივყვეთ certbot-ის ინსტრუქციებს

რის შემდეგაც ჩვენი საიტი გამოიყენებს https -ს და ის იქნება უსაფრთხო და უკვე ხალხის შეშინების გარეშე შეძლებ შენი პროექტის გაზიარებას

Last updated