1. Veb-server nədir?
Bu gün biz Nginx və Apache haqqında danışacağıq, iki ən məşhur veb-serverlər. Dərsin sonunda serveriniz internetdə tanış olmayan istifadəçiləri qürurla salamlayacaq.
Komandalara keçməzdən əvvəl gəlin nə etməyə çalışdığımızı anlayaq. Veb-server – HTTP sorğularını qəbul edən (məsələn, istifadəçi brauzerə saytın ünvanını daxil edəndə), onları işləyən və uyğun kontenti (HTML səhifəsi, fayl və ya hətta «404 Not Found» xətası) cavab olaraq göndərən proqramdır. O, istifadəçilər və sizin kontentiniz arasında keçid rolunu oynayır.
Nginx vs Apache: veb-serverlərin mübarizəsi
Əgər Nginx və Apache kafedə görüşsəydi:
- Nginx lavanda şirni latte içərdi və dərhal bütün işləri asinxron şəkildə həll edərək deyərdi: "Mənə sorğunu ver, bir dəqiqəyə sənə faylı qaytararam, mənə mane olma!".
- Apache, əksinə, daha ənənəvi davranar, hər bir tapşırıq üçün bir axın yaradardı və nəzakətlə cavab verərdi, amma böyük sorğu yığılmalarında yavaş olar.
Qısa fərqlər:
| Xüsusiyyət | Nginx | Apache |
|---|---|---|
| Arxitektura | Asinxron | Axın yönümlü |
| Performans | Böyük yüklərdə yüksək | Dinamikaya (PHP/Perl) uyğundur |
| Sadəlik | Konfiqurasiyada sadəlik, amma öz xüsusiyyətləri var | Daha universal, amma daha çətin |
Nə vaxt hansı seçilməlidir?
- Əgər saytınız bir dəstə statik fayldırsa (məsələn, bloq və ya landing), onda Nginx sizə kömək edəcək.
- Əgər siz dinamik veb-tətbiqlərlə işləyirsinizsə (məsələn, PHP-sayt), Apache daha çox çeviklik təmin edəcək.
2. Veb-serverin qurulması
Artıq bunun nə üçün lazım olduğunu başa düşdüyünüzə görə, quraşdırmaya başlamağın vaxtıdır. Biz həm Nginx-i, həm də Apache-i quraşdırmağı nəzərdən keçirəcəyik. Hansınısa daha çox bəyənsəniz onu seçin, ya da hər ikisini birdən qurun ki, professional kimi hiss edəsiniz.
Nginx-in quraşdırılması
Paketlər siyahısını yeniləyirik:
sudo apt-get updateNginx-i qururuq:
sudo apt-get install nginxServerin statusunu yoxlayırıq:
sudo systemctl status nginxƏgər hər şey qaydasındadırsa, siz bir şey buna bənzər şəkildə görəcəksiniz:
active (running).Standart səhifəni yoxlayırıq: Brauzer açıb
http://localhostdaxil edin. Siz Nginx-in salamlayıcı səhifəsini görməlisiniz, bu isə quraşdırmanın uğurlu olduğunu təsdiqləyir.
Apache-in quraşdırılması
Paketlər siyahısını yeniləyirik:
sudo apt-get updateApache-i qururuq:
sudo apt-get install apache2Serverin statusunu yoxlayırıq:
sudo systemctl status apache2Nginx-də olduğu kimi, status
active (running)olmalıdır.Standart səhifəni yoxlayırıq: Brauzerdə
http://localhostaçırıq. İndi orada Apache-in defolt səhifəsi olacaq.
3. Veb-serverin əsas konfiqurasiyası
Tənzimləmələr haradadır?
Nginx-də əsas konfiqurasiya faylı aşağıdakı ünvanda yerləşir:
/etc/nginx/nginx.confApache üçün:
/etc/apache2/apache2.conf
Sevdiyiniz redaktorla (məsələn, nano) konfiqurasiya fayllarını açmağa çalışın:
sudo nano /etc/nginx/nginx.conf
İlk macəranız buradan başlayır: Ola bilsin ki, indi heç nə başa düşməyəcəksiniz, çünki konfiqurasiya faylları rol oyunundakı cadular kimi görünür. Amma qorxmayın – hər şeyi izah edəcəyik.
Serverlərin işə salınması, dayandırılması və yenidən başladılması
Əgər Linux-da xidmətlərin necə idarə olunacağını bilirsinizsə, "işin yarısını bitirdiniz". Veb-serverlərimizlə işləmək üçün əsas komandalar bunlardır:
Nginx üçün:
sudo systemctl start nginx # İşə salınması
sudo systemctl stop nginx # Dayandırılması
sudo systemctl restart nginx # Yenidən başladılması
sudo systemctl reload nginx # Konfiqurasiyanın yenidən yüklənməsi
Apache üçün:
sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl reload apache2
Konfiqurasiyanın yoxlanması
Serveri yenidən başlamazdan əvvəl həmişə səhv etmədiyinizə əmin olun:
Nginx üçün:
sudo nginx -tApache üçün:
sudo apachectl configtest
Hər hansı bir konfiqurasiya səhvi göstəriləcək – serveri təsadüfən pozmaq mümkün deyil.
4. Demonstrasiya: İlk saytımızı işə salırıq
İndi, veb-tərtibatçıların çox sevdiyi bir şeyi edəcəyik – inanılmaz kreativ adla belə bir sayt yaradacağıq: «Hello Server».
Nginx üçün
Sayt üçün bir direktoriyadan başlayırıq:
sudo mkdir -p /var/www/hello sudo nano /var/www/hello/index.htmlFaylda bunları yazın (bəli, hər şey dahi olsa da, sadədir):
<h1>Salam, Nginx Server!</h1>Konfiqurasiya tənzimlənməsi:
sudo nano /etc/nginx/sites-available/helloSadə bir konfiqurasiya nümunəsi:
server { listen 80; server_name hello.local; root /var/www/hello; index index.html; location / { try_files $uri $uri/ =404; } }Konfiqurasiya aktivləşdirilməsi:
sudo ln -s /etc/nginx/sites-available/hello /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginxLokal maşın üçün
hello.localdomen adını təyin etmək üçün/etc/hostsfaylına giriş əlavə edin:127.0.0.1 hello.localSaytı brauzer vasitəsilə yoxlayın: http://hello.local.
Hosts faylı IP ünvanlarının domen adları ilə xəritələndiyi bir fayldır. Bu sizin lokal DNS serverinizdir. Hər əməliyyat sistemində bu fayl var. Windows-da da mövcuddur, burada yerləşir: C:\Windows\System32\drivers\etc\hosts
Apache üçün
Direktoriyanın yaradılması:
sudo mkdir -p /var/www/hello sudo nano /var/www/hello/index.htmlFaylı doldurun:
<h1>Salam, Apache Server!</h1>Virtual host konfiqurasiyasının yaradılması:
sudo nano /etc/apache2/sites-available/hello.confKonfiqurasiya nümunəsi:
<VirtualHost *:80> ServerName hello.local DocumentRoot /var/www/hello <Directory /var/www/hello> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>Konfiqurasiyanın aktivləşdirilməsi:
sudo a2ensite hello.conf sudo systemctl reload apache2/etc/hostsfaylına giriş əlavə edin:127.0.0.1 hello.localİşləməyi yoxlayın: http://hello.local.
Bugünkü mövzudan sonra, əsas veb-serveri müstəqil şəkildə quraşdırmağa və tənzimləməyə hazırsınız. Bir az daha səy göstərsəniz – tam hüquqlu saytlar və tətbiqlər yarada biləcəksiniz ki, artıq uşaq həvəskarının naxışına bənzəməyəcək. Hardasa burada HTTPS gizlənib, amma bu haqda sonra danışarıq.
GO TO FULL VERSION