CodeGym /Kurslar /Docker SELF /Veb serverin quraşdırılması və sazlanması (Nginx/Apache)

Veb serverin quraşdırılması və sazlanması (Nginx/Apache)

Docker SELF
Səviyyə , Dərs
Mövcuddur

1. Veb-server nədir?

Bu gün biz NginxApache 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ı

  1. Paketlər siyahısını yeniləyirik:

    sudo apt-get update
    
  2. Nginx-i qururuq:

    sudo apt-get install nginx
    
  3. Serverin 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).

  4. Standart səhifəni yoxlayırıq: Brauzer açıb http://localhost daxil 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ı

  1. Paketlər siyahısını yeniləyirik:

    sudo apt-get update
    
  2. Apache-i qururuq:

    sudo apt-get install apache2
    
  3. Serverin statusunu yoxlayırıq:

    sudo systemctl status apache2
    

    Nginx-də olduğu kimi, status active (running) olmalıdır.

  4. Standart səhifəni yoxlayırıq: Brauzerdə http://localhost açı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.conf
    
  • Apache üçü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
Vacibdir!

İ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 -t
    
  • Apache üçü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

  1. Sayt üçün bir direktoriyadan başlayırıq:

    sudo mkdir -p /var/www/hello
    sudo nano /var/www/hello/index.html
    

    Faylda bunları yazın (bəli, hər şey dahi olsa da, sadədir):

    <h1>Salam, Nginx Server!</h1>
  2. Konfiqurasiya tənzimlənməsi:

    sudo nano /etc/nginx/sites-available/hello
    

    Sadə 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;
        }
        }
  3. Konfiqurasiya aktivləşdirilməsi:

    sudo ln -s /etc/nginx/sites-available/hello /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl reload nginx
    
  4. Lokal maşın üçün hello.local domen adını təyin etmək üçün /etc/hosts faylına giriş əlavə edin:

    127.0.0.1 hello.local
    
  5. Saytı brauzer vasitəsilə yoxlayın: http://hello.local.

Vacib!

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

  1. Direktoriyanın yaradılması:

    sudo mkdir -p /var/www/hello
    sudo nano /var/www/hello/index.html
    

    Faylı doldurun:

    <h1>Salam, Apache Server!</h1>
  2. Virtual host konfiqurasiyasının yaradılması:

    sudo nano /etc/apache2/sites-available/hello.conf
    

    Konfiqurasiya 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>
  3. Konfiqurasiyanın aktivləşdirilməsi:

    sudo a2ensite hello.conf
    sudo systemctl reload apache2
    
  4. /etc/hosts faylına giriş əlavə edin:

    127.0.0.1 hello.local
    
  5. İş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.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION