როგორ დააინსტალიროთ Nginx AlmaLinux 9-ზე

NGINX არის ღია, უფასო HTTP სერვერის პროგრამული უზრუნველყოფა. გარდა HTTP სერვერის შესაძლებლობებისა, NGINX-ს შეუძლია ფუნქციონირდეს როგორც პროქსი სერვერი ელფოსტისთვის (IMAP, POP3 და SMTP) და საპირისპირო პროქსი და დატვირთვის ბალანსერი HTTP, TCP და UDP სერვერებისთვის. NGINX-ის მიზანი იყო უსწრაფესი ვებ სერვერის შექმნა და ამ ბრწყინვალების შენარჩუნება ჯერ კიდევ Nginx პროექტის ცენტრალური მიზანია. NGINX მუდმივად აჯობა Apache-ს და სხვა სერვერებს ვებ სერვერის მუშაობის საზომი ნიშნით და ახლა არის ყველაზე პოპულარული გამოყენებული ვებ სერვერი W3Tech-ის მიხედვით.

შემდეგ გაკვეთილზე თქვენ შეისწავლით Nginx-ის დაყენებას AlmaLinux 9 დესკტოპზე ან სერვერზე უფასო TLS/SSL სერთიფიკატით Let's Encrypt-ისგან და ზოგიერთი ძირითადი კონფიგურაციის კონფიგურაცია სერვერის ბლოკით და Nginx ფაილის ნებართვით.

განაახლეთ AlmaLinux

პირველ რიგში, როგორც კარგი პრაქტიკა, დარწმუნდით, რომ თქვენი სისტემა განახლებულია, რათა თავიდან აიცილოთ კონფლიქტები Nginx-ის ან მისი კონფიგურაციის დაყენებისას.

sudo dnf upgrade --refresh

დააინსტალირეთ Nginx

ნაგულისხმევად, Nginx წარმოდგენილია AlmaLinux 9 აპლიკაციის ნაკადში, რაც ინსტალაციას მარტივს ხდის. მომხმარებლებისთვის, რომლებსაც ურჩევნიათ დააინსტალირონ Nginx mainline ან Nginx stable-ის უფრო ახალი ვერსია, გთხოვთ, იხილოთ ჩემი სახელმძღვანელო „როგორ დავაყენოთ/განახლოთ Nginx Mainline/Stable AlmaLinux 9-ზე“ რომელიც მოიცავს ორივეს, შემდეგ გააგრძელეთ აქ, რომ დაასრულოთ კონფიგურაცია/დაყენება.

დაიწყეთ Nginx-ის ინსტალაცია შემდეგი ტერმინალის ბრძანების გამოყენებით სტანდარტული Nginx ვებ სერვერის დასაყენებლად.

რეკლამა
sudo dnf install nginx -y

ინსტალაციის შემდეგ, ჩართეთ Nginx სერვისი შემდეგი ბრძანების გამოყენებით.

sudo systemctl enable nginx --now

შემდეგი, შეამოწმეთ Nginx-ის სტატუსი, რათა დარწმუნდეთ, რომ სერვისი სწორად არის დაინსტალირებული შეცდომების გარეშე.

systemctl status nginx

მაგალითი გამომავალი:

როგორ დააინსტალიროთ Nginx AlmaLinux 9-ზე

FirewallD წესების კონფიგურაცია

Nginx-ის დაყენებისას არ არის დაყენებული Firewall-ის წესები სტანდარტულ 80 ან 443 პორტებზე. სანამ გააგრძელებთ, უნდა დააყენოთ შემდეგი წესები, ეს დამოკიდებული იქნება იმაზე, თუ რომელ პორტებს გამოიყენებთ, მაგრამ ყველა ვარიანტი ჩამოთვლილია.

გახსენით პორტი 80 ან HTTP:

sudo firewall-cmd --permanent --zone=public --add-service=http

გახსენით პორტი 443 ან HTTPS:

რეკლამა
sudo firewall-cmd --permanent --zone=public --add-service=https

გადატვირთეთ firewall ცვლილებები ძალაში

sudo firewall-cmd --reload

FirewallD-ის კონფიგურაციის შემდეგ, შეამოწმეთ, რომ დარწმუნდეთ, რომ ხედავთ Nginx სადესანტო გვერდს თქვენს ინტერნეტ ბრაუზერში.

http://your_server_ip

ალტერნატივა, სცადეთ ლოკალჰოსტი.

http://localhost

თუ ყველაფერი კარგად მუშაობს, თქვენ უნდა მოხვდეთ შემდეგ გვერდზე:

როგორ დააინსტალიროთ Nginx AlmaLinux 9-ზე

დააყენეთ საიტის წყაროს დირექტორია

ნინიქსი სერვერის ბლოკები (მსგავსი ვირტუალური მასპინძლები Apache-ში) შეუძლია კონფიგურაციის დეტალების ინკაფსულაცია და ერთ სერვერზე ერთზე მეტი დომენის მასპინძლობა. ტუტორიალში თქვენ დააყენებთ დომენს, რომელსაც ე.წ example.com, მაგრამ თქვენ უნდა შეცვალოთ ეს თქვენი დომენის სახელით.

Nginx-ის დაყენებისას ის იქმნება წინასწარ დაინსტალირებული www დირექტორია. მდებარეობა არის ნაპოვნი / var / www /.

რეკლამა

პირველი, შექმენით დირექტორია, ამისთვის example.com, შემდეგნაირად, გამოყენებით "-p" მონიშნეთ ნებისმიერი საჭირო მშობლის დირექტორიების შესაქმნელად:

sudo mkdir -p /var/www/example.com/

მეორეც, თქვენ უნდა დანიშნოთ დირექტორიას მფლობელი.

sudo chown -R nginx:nginx /var/www/example.com/

დააყენეთ სატესტო HTML გვერდი

მეოთხე, შექმენით სატესტო გვერდი, რომელსაც გამოიყენებთ თქვენი Nginx სერვერის ფუნქციონირების დასადასტურებლად.

sudo nano /var/www/example.com/index.html

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

<html>
 <head>
  <title>Welcome to Linuxcapable.com</title>
 </head>
 <body>
   <h1>Success!  The tutorial server block is working! Thanks Linuxcapable.com :D</h1>
 </body>
</html>

შეინახეთ ფაილი CTRL + O, შემდეგ გასვლა CTRL + X.

იხილეთ ასევე  როგორ დააინსტალიროთ Tor ბრაუზერი AlmaLinux 9-ზე

შექმენით Nginx სერვერის ბლოკი

Nginx სერვერის ბლოკების შექმნა არის Apache სერვერის ბლოკების ექვივალენტი, ჯერ შექმენით დირექტორიები.

რეკლამა
sudo mkdir /etc/nginx/sites-available/ /etc/nginx/sites-enabled/

ახლა თქვენ შექმნით სერვერის ბლოკს თქვენი ვებსაიტისთვის ნებისმიერი ტექსტური რედაქტორის გამოყენებით, გაკვეთილი გამოიყენებს nano-ს.

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

შეგიძლიათ ჩასვათ შემდეგი მაგალითი კოდი ბლოკში. ეს მხოლოდ HTTP-ის მაგალითია ძირითადი ტესტირებისთვის.

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

 root /var/www/example.com/;

  index index.html index.htm index.nginx-debian.html;
  server_name your_domain www.your_domain;

 location / {
  try_files $uri $uri/ =404;
 }
}

მაგალითი აჩვენებს, რომ თქვენი სერვერი უსმენს ორი სერვერის სახელს, „example.com“. პორტი 80.

თქვენ უნდა შეცვალოთ root დირექტორია თქვენს მიერ შექმნილ root დირექტორიას სახელზე/ადგილზე.

ჩართეთ Nginx სერვერის ბლოკი

ჩართეთ Nginx სერვერის ბლოკები და თქვენ უნდა დააკავშიროთ კონფიგურაციის ფაილები საიტებიდან, რომლებიც ხელმისაწვდომია თქვენს Nginx დირექტორიაში ჩართულ საიტებთან. ეს შეიძლება გაკეთდეს ln -s ბრძანებით შემდეგნაირად.

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

საბოლოო კონფიგურაცია და ტესტირება

დასკვნით ეტაპზე, თქვენ უნდა გახსნათ თქვენი ნაგულისხმევი nginx.conf ფაილი.

რეკლამა
sudo nano /etc/nginx/nginx.conf

შემდეგ გააუქმეთ კომენტარი შემდეგში HTTP{} განყოფილების nginx.conf კონფიგურაციის ფაილი:

server_names_hash_bucket_size 64;

და ბოლოს, თქვენ უნდა დაამატოთ საიტების ჩართვით გზა თქვენი Nginx კონფიგურაციის ფაილისკენ, იპოვნეთ არსებული "შეიცავს /etc/nginx/conf.d/*.conf;" და შეცვალეთ ან დაამატეთ ხაზი პირდაპირ მის ქვეშ.

include /etc/nginx/sites-enabled/*.conf;

მაგალითი:

როგორ დააინსტალიროთ Nginx AlmaLinux 9-ზე

შეინახეთ კონფიგურაცია (CLTR+O) და მაშინ (Ctrl+x) გასასვლელად.

Შენიშვნა, (server_names_hash_bucket_size) ზრდის დომენური სახელების ანალიზისთვის გამოყოფილ მეხსიერებას, ასე რომ არ დააყენოთ ეს აბსურდულ რიცხვზე.

შემდეგი, შეამოწმეთ თქვენი Nginx, რათა დარწმუნდეთ, რომ ის მუშაობს სწორად გადატვირთვამდე.

რეკლამა
sudo nginx -t

გამომავალი უნდა იყოს, თუ სინტაქსში შეცდომები არ არის:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

თუ თქვენი სერვერი ვერ მოხერხდა, სიმბოლურ ბმულში ყველაზე გავრცელებული შემთხვევა აკლია ან არასწორია. ნავიგაცია თქვენს /etc/nginx/sites-enabled/ დირექტორია.

cd /etc/nginx/sites-enabled/

ახლა დაბეჭდეთ ფაილები გამოყენებით ბრძანება შემდეგნაირად.

ls

მაგალითი გამომავალი:

როგორ დააინსტალიროთ Nginx AlmaLinux 9-ზე

მე შევქმენი example.com.conf, რომელიც არის სწორი მაგალითი example.conf-wrong, რაც არასწორია, რაც იწვევს Nginx სერვისს შეცდომის გენერირებას. წაშალეთ ნებისმიერი კონფიგურაციის ფაილი, რომელიც არ იქნება გამოყენებული, ნაგულისხმევი ფაილის ჩათვლით.

sudo rm default example.conf

ხელახლა ჩაატარეთ ტესტი; თუ კარგია, მაშინ გადატვირთეთ.

რეკლამა
sudo systemctl restart nginx

ახლა გახსენით თქვენი ინტერნეტ ბრაუზერი და ჩაწერეთ სერვერის დომენის სახელი. თქვენ უნდა ნახოთ თქვენი სერვერის ბლოკი ცოცხალია.

როგორ დააინსტალიროთ Nginx AlmaLinux 9-ზე

უსაფრთხო ვებ სერვერის ფაილები

ერთ-ერთი ყველაზე გავრცელებული შეცდომა, რომელსაც ბევრი მომხმარებელი უშვებს, არის ფაილების/საქაღალდეების ნებართვების დაფიქსირება. ბევრი მომხმარებელი სრულ წაკითხვა/ჩაწერა და წვდომას ანიჭებს საზოგადოებას.

იხილეთ ასევე  როგორ დააინსტალიროთ Avidemux Linux Mint 21 LTS-ზე

გამოიყენეთ შემდეგი ბრძანება ყველა საქაღალდისა და ფაილის მოსაძიებლად და ყველაზე გავრცელებული უსაფრთხო ნებართვების დასაყენებლად. დარწმუნდით, რომ შეცვალეთ ნებართვები ნებისმიერ ფაილზე / დირექტორიაზე ამის შემდეგ. მაგალითად, phpBB მოითხოვს, რომ ზოგიერთი საქაღალდე იყოს 777.

sudo find /var/www/example.com/ -type d -exec chmod 755 "{}" \;
sudo find /var/www/example.com/ -type f -exec chmod 644 "{}" \;

დარწმუნდით, რომ შეცვალეთ /var/www/example.com/ თქვენი root დირექტორიას მდებარეობაზე.

გაითვალისწინეთ, რომ ეს არ ხდის თქვენს Nginx სერვერს უსაფრთხოს; ის გამორიცხავს გავრცელებულ რისკს ბევრიდან.

დაიცავით Nginx Let's Encrypt SSL უფასო სერთიფიკატით

იდეალურ შემთხვევაში, გსურთ თქვენი Nginx ვებ სერვერის გაშვება HTTPS-ზე SSL სერთიფიკატის გამოყენებით. ამის გაკეთების საუკეთესო გზაა Let's Encrypt-ის გამოყენება, უფასო, ავტომატიზებული და ღია სერტიფიკატის ავტორიტეტი, რომელსაც მართავს არაკომერციული ინტერნეტ უსაფრთხოების კვლევის ჯგუფი (ISRG).

რეკლამა

პირველი, ჩართეთ CRB საცავი.

sudo dnf config-manager --set-enabled crb

შემდეგი, ინსტალაცია თბილი შემდეგის გამოყენებით (dnf) ტერმინალის ბრძანება.

sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

ახლა დააინსტალირეთ snapd.

sudo dnf install snapd -y

ინსტალაციის შემდეგ, ჩართეთ იგი დაუყოვნებლივ და სისტემის გაშვებისას განახლებების მონიტორინგისთვის.

sudo systemctl enable snapd --now

შემდეგი, დააინსტალირეთ snap core, რათა დაფაროს ყველა დამოკიდებულება, რომელიც საჭიროა snap პაკეტებისთვის.

sudo snap install core

შექმენით სიმლინკი snapd საქაღალდისთვის.

რეკლამა
sudo ln -s /var/lib/snapd/snap /snap

დააინსტალირეთ Certbot snap პაკეტი.

sudo snap install --classic certbot

და ბოლოს, შექმენით კიდევ ერთი სიმბლაკი certbot-ისთვის.

sudo ln -s /snap/bin/certbot /usr/bin/certbot

ინსტალაციის შემდეგ, გაუშვით შემდეგი ბრძანება თქვენი სერთიფიკატის შექმნის დასაწყებად:

sudo certbot --dry-run --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

ალტერნატიულად, გამოიყენეთ შემდეგი ბრძანება და მიჰყევით მოთხოვნებს, თუ უფრო ხელმისაწვდომია.

sudo certbot certonly --nginx

ეს იდეალური დაყენება მოიცავს იძულებით HTTPS 301 გადამისამართებებს, Strict-Transport-Security სათაურს და OCSP Stapling-ს. უბრალოდ დარწმუნდით, რომ შეცვალეთ ელექტრონული ფოსტა და დომენის სახელი თქვენს მოთხოვნებზე.

ახლა თქვენი URL იქნება HTTPS://www.example.com ნაცვლად HTTP://www.example.com.

რეკლამა

სურვილისამებრ, შეგიძლიათ დააყენოთ cron სამუშაო სერტიფიკატების ავტომატურად განახლებისთვის. Certbot გთავაზობთ სკრიპტს, რომელიც ამას ავტომატურად აკეთებს და შეგიძლიათ ჯერ შეამოწმოთ, რომ დარწმუნდეთ, რომ ყველაფერი მუშაობს მშრალი გაშვების შესრულებით.

sudo certbot renew --dry-run

შემდეგ გამოიყენეთ systemctl-ტაიმერები დაადასტუროთ, რომ ამჟამად მუშაობს Cron სამუშაო თქვენი სერტიფიკატის შესამოწმებლად და განახლებისთვის.

systemctl list-timers

მაგალითი გამომავალი:

როგორ დააინსტალიროთ Nginx AlmaLinux 9-ზე

არსებობს ტაიმერი, რომელიც შეამოწმებს და განაახლებს სერთიფიკატს ვადის გასვლამდე, ასე რომ თქვენ აღარ გჭირდებათ ფიქრი.

როგორ მივიღოთ Nginx სერვერის ჟურნალები

Nginx Logs დირექტორია

ნაგულისხმევად, ყველა NGINX წვდომის/შეცდომის ჟურნალი, თუ არ შეცვლით, მდებარეობს ჟურნალის დირექტორიაში, რომლის ნახვაც შესაძლებელია შემდეგი ბრძანებით.

პირველი, გადადით ჟურნალების დირექტორიაში და ჩამოთვალეთ ფაილები:

რეკლამა
cd /var/log/nginx && ls -l

თქვენ უნდა იპოვოთ შემდეგი წვდომა და შეცდომის ფაილები:

წვდომის ჟურნალი:

/var/log/nginx/access.log

შეცდომების ჟურნალი:

/var/log/nginx/error.log

თქვენს ტერმინალში ჟურნალების რეალურ დროში სანახავად გამოიყენეთ კუდი -f /location/of/log ბილიკის ბრძანება.

მაგალითი:

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

გაითვალისწინეთ, რომ შეიძლება დაგჭირდეთ sudo-ს გამოყენება ზემოთ მოცემული ბრძანებით.

რეკლამა

კიდევ ერთი ვარიანტია ბოლო X რაოდენობის ხაზების დაბეჭდვა. მაგალითად, X იცვლება 30-ით 30 სტრიქონის დასაბეჭდად -n 30 დროშა.

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

ეს მხოლოდ მორების კითხვის რამდენიმე მაგალითია.

იხილეთ ასევე  როგორ დააინსტალიროთ NotepadQQ Linux Mint 21 LTS-ზე

როგორ დავაკონფიგურიროთ Nginx Log Rotate

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

sudo nano /etc/nginx/logrotate.d/nginx

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

/var/log/nginx/*.log {
  daily
  missingok
  rotate 14
  compress
  delaycompress
  notifempty
  create 0640 www-data adm
  sharedscripts
  prerotate
  if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
  run-parts /etc/logrotate.d/httpd-prerotate; \
  fi \
  endscript
  postrotate
  invoke-rc.d nginx rotate >/dev/null 2>&1
  endscript
}

ძირითადი პარამეტრები, რომელთა შეცვლაც გსურთ, არის შემდეგი:

  • დღიურიეს შეიძლება შეიცვალოს ყოველკვირეული or ყოველთვიურად ეს ყოველდღიურად უნდა იყოს შენახული, წინააღმდეგ შემთხვევაში ჟურნალის ფაილის გავლა რთული იქნება.
  • როტაცია 14 – ეს არის რამდენი ჟურნალის შენახვა და ამოღება, ასე რომ, მაქსიმუმ, არის მხოლოდ 14 ჟურნალი; თუ გსურთ მხოლოდ შვიდი დღის ღირებულების ჟურნალის შენარჩუნება, შეცვალეთ ეს 7-ით.

რეკომენდირებულია არ შეეხოთ სხვა პარამეტრებს, თუ არ იცით რას აკეთებთ.

რეკლამა

როგორ განაახლოთ / განაახლოთ Nginx

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

nginx.conf-ის სარეზერვო ასლის შექმნა (რეკომენდირებულია).

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx-backup.conf

თუ გსურთ, შექმენით მთელი თქვენი Nginx საქაღალდის სარეზერვო ასლი.

sudo cp /etc/nginx/ /etc/nginx-bkup

შემდეგი, გაუშვით სტანდარტული განახლების ბრძანება.

sudo dnf update --refresh

ეს შეიძლება მოგეთხოვოთ განახლების ან ინსტალაციის დროს, მაგრამ ხელით ამის გაკეთება აუცილებელია. მრავალი საიტის დიდი Nginx კონფიგურაციისთვის, Github-ის ან Gitlab-ის მსგავსი სარეზერვო ასლის შექმნა კიდევ უფრო მომგებიანი იქნება.

როგორ ამოიღოთ (წაშალოთ) Nginx

მომხმარებლებისთვის, რომლებსაც სურთ ვებ სერვერის წაშლა, შეაჩერეთ ვებ სერვერი.

რეკლამა
sudo systemctl disable nginx --now

ახლა შემდეგი ბრძანების გამოყენებით, ამოიღეთ Nginx სრულად.

sudo dnf autoremove nginx

ნარჩენი ფაილები შეიძლება კვლავ არსებობდეს მასში /etc/nginx მთავარი საქაღალდე, ასე რომ, მოდით წავშალოთ ეს დირექტორია.

sudo rm -R /etc/nginx/

გაითვალისწინეთ, რომ ეს გაასუფთავებს თქვენს პერსონალურ კონფიგურაციის ფაილებს. დარწმუნდით, რომ შექმენით სარეზერვო ასლი, თუ შეგიძლიათ ისევ გამოიყენოთ იგი Github ან მსგავსი ტიპის მომსახურება.

კომენტარები და დასკვნა

Nginx არის ყველაზე გამოყენებული და პოპულარული ვებ აპლიკაციის პროგრამული უზრუნველყოფა ახლა, ყოველი თვე და წელი აჭარბებს Apache-სგან ბაზრის მეტ წილს. ზოგიერთი ახალი პრეტენდენტი იწყებს გამოჩენას, როგორიცაა Openlitespeed, მაგრამ ამ სხვა ვებ აპლიკაციების გათვალისწინებით, ახლა ფოკუსირებულია კონკრეტულ საკითხებზე, როგორიცაა WordPress. Nginx იქნება გადასასვლელი ვებ აპლიკაცია გარკვეული დროით.


არა ის, რასაც ეძებდით? სცადეთ მოძებნოთ დამატებითი გაკვეთილები.

დატოვე კომენტარი