Ubuntu 20.04'e Nginx Web Sunucusu Nasıl Kurulur


Nginx, üretim ortamlarında büyük bir pazar payına sahip olan açık kaynaklı, yüksek performanslı bir web sunucusudur. Çoğunlukla yüksek trafikli web sitelerini barındırmak için kullanılan hafif ve sağlam bir web sunucusudur.

İlgili Okumalar: Ubuntu 20.04'te Apache Web Sunucusu Nasıl Kurulur

Bu kılavuzda, Ubuntu 20.04 LTS'de Nginx web sunucusunu nasıl kuracağınızı ve Nginx sunucu bloğunu (sanal ana bilgisayarlar) nasıl yapılandıracağınızı öğreneceksiniz.

Önkoşullar

Başlamak için SSH erişimine sahip bir Ubuntu 20.04 LTS örneğine ve root ayrıcalıklarına sahip bir Sudo kullanıcısına sahip olduğunuzdan emin olun. Ayrıca Nginx paketlerini kurmak için istikrarlı bir internet bağlantısı önerilir.

Nginx'in Ubuntu 20.04'e Kurulumu

1. Nginx'i kurmadan önce sunucunuzun paket listelerini güncelleyin.

sudo apt update

2. Ardından şu komutu çalıştırarak Nginx'i yükleyin:

sudo apt install nginx

Devam etmeniz istendiğinde klavyede 'Y' tuşuna basın ve ENTER tuşuna basın. Kurulum sadece birkaç saniye içinde yapılacaktır.

3. Nginx başarıyla yüklendikten sonra aşağıdakileri çalıştırarak başlatabilir ve doğrulayabilirsiniz:

sudo systemctl start nginx
sudo systemctl status nginx

Yukarıdaki çıktı açıkça Nginx'in çalıştığını gösteriyor.

4. Nginx sürümünü kontrol etmek için şunu çalıştırın:

sudo dpkg -l nginx

Çıktı, bu makalenin yazıldığı sırada en son sürüm olan Nginx 1.17.10'u çalıştırdığımızı gösteriyor.

UFW Güvenlik Duvarında Nginx Bağlantı Noktalarını Açma

Artık Nginx'i yüklediğinize ve beklendiği gibi çalıştırdığınıza göre, Nginx'e bir web tarayıcısı aracılığıyla erişilebilmesi için birkaç ayarlama yapılması gerekiyor. UFW güvenlik duvarını çalıştırıyorsanız Nginx uygulama profiline izin vermeniz gerekir.

Ufw güvenlik duvarıyla ilişkili 3 Nginx profili vardır.

  1. Nginx Full – Bu, hem 80 hem de 443 bağlantı noktasını açar (SSL/TLS şifrelemesi için).
  2. Nginx HTTP – Bu yalnızca açık bağlantı noktası 80 (Şifrelenmemiş web trafiği için).
  3. Nginx HTTPS – Yalnızca 443 bağlantı noktasını açar (SSL/TLS şifrelemesi için).

5. Ubuntu 20.04'te güvenlik duvarını etkinleştirerek başlayın.


sudo ufw enable

6. Şimdilik şifreli bir sunucuda olmadığımız için yalnızca 80 numaralı bağlantı noktasındaki trafiğe izin verecek Nginx HTTP profiline izin vereceğiz. .

sudo ufw allow 'Nginx HTTP'

7. Ardından değişikliklerin kalıcı olması için güvenlik duvarını yeniden yükleyin.

sudo ufw reload

8. Şimdi izin verilen profilleri doğrulamak için güvenlik duvarının durumunu kontrol edin.

sudo ufw status

Nginx'i Ubuntu 20.04'te test etmek

Nginx, herhangi bir web sunucusundan beklediğiniz gibi tarayıcıda çalışır ve beklendiği gibi çalışıp çalışmadığını test etmenin en kesin yolu, istekleri bir tarayıcı aracılığıyla göndermektir.

9. Tarayıcınıza gidin ve sunucunun IP adresine veya alan adına göz atın. Sunucunuzun IP'sini kontrol etmek için ifconfig komutunu çalıştırın:

ifconfig

10. Bir bulut sunucusundaysanız, sunucunun genel IP'sini almak için aşağıdaki curl komutunu çalıştırın.

curl ifconfig.me

11. Tarayıcınızın URL alanına sunucunuzun IP adresini veya alan adını girin ve ENTER'a basın.

http://server-IP or domain-name

Gösterildiği gibi varsayılan bir Nginx karşılama sayfası almalısınız.

Ubuntu 20.04'te Nginx Sürecini Yönetin

12. Nginx web sunucusunu durdurmak için şunu çalıştırmanız yeterlidir:

sudo systemctl stop nginx

13. Web sunucusunu tekrar açmak için şunu çalıştırın:

sudo systemctl start nginx

14. Açılışta veya yeniden başlatma çalıştırmasında Nginx'i otomatik olarak başlatmak için:

sudo systemctl enable nginx

15. Özellikle yapılandırma dosyalarında değişiklik yaptıktan sonra web sunucusunu yeniden başlatmak istiyorsanız şunu çalıştırın:

sudo systemctl restart nginx

16. Alternatif olarak, bağlantıların kesilmesini önlemek için gösterildiği gibi yeniden yükleyebilirsiniz.

sudo systemctl reload nginx

Ubuntu 20.04'te Nginx Sunucu Bloğunu Yapılandırma

Sunucunuzda birden fazla site barındırmayı planlıyorsanız bir Nginx Sunucu bloğu oluşturmanız önemle tavsiye edilir. Sunucu bloğu Apache'nin sanal ana makinesinin eşdeğeridir.

Varsayılan olarak Nginx, web içeriğini /var/www/html yolunda sunacak şekilde ayarlanmış varsayılan sunucu bloğuyla birlikte gelir.

Alan adımızın içeriğini sunmak için ayrı bir Nginx bloğu oluşturacağız. Bu kılavuz için crazytechgeek.info alan adını kullanacağız.
Sizin durumunuzda bunu kendi alan adınızla değiştirdiğinizden emin olun.

17. Sunucu blok dosyası oluşturmak için, Öncelikle alan adınız için gösterildiği gibi bir dizin oluşturun.

sudo mkdir -p /var/www/crazytechgeek.info/html

18. Ardından, $USER değişkenini kullanarak sahipliği yeni dizine atayın.

sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

19. Dizin izinlerini de buna göre atadığınızdan ve sahibinin tüm izinlere (okuma, yazma ve yürütme) sahip olmasına ve diğer taraflara yalnızca okuma ve yürütme izinleri verdiğinizden emin olun.

sudo chmod -R 755 /var/www/crazytechgeek.info

20. Etki alanı dizininin içinde, etki alanının web içeriğini içerecek bir index.html dosyası oluşturun.

sudo vim /var/www/crazytechgeek.info/html/index.html

Aşağıdaki içeriği örnek test dosyasına yapıştırın.

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
        <h1>Bravo! Your server block is working as expected!</h1>
    </body>
</html>

Değişiklikleri kaydedin ve dosyadan çıkın.

21. Nginx web sunucusunun yeni eklediğiniz içeriği sunabilmesi için uygun yönergelerle bir sunucu bloğu oluşturmanız gerekir. Bu durumda şu adreste yeni bir sunucu bloğu oluşturduk:

sudo vim /etc/nginx/sites-available/crazytechgeek.info

Gösterilen konfigürasyonu yapıştırın.

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

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

        server_name crazytechgeek.info  www.crazytechgeek.info;

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

Kaydet ve çık.

22. Şimdi sunucu engelleme dosyasını, Nginx sunucusunun başlangıçta okuduğu sites-enabled dizinine bağlayarak etkinleştirin.

sudo ln -s /etc/nginx/sites-available/crazytechgeek.info /etc/nginx/sites-enabled/

23. Değişikliklerin etkili olması için Nginx web sunucusunu yeniden başlatın.

sudo systemctl restart nginx

24. Tüm yapılandırmaların düzgün olduğundan emin olmak için şu komutu çalıştırın:

nginx -t

Tüm konfigürasyonlar doğruysa aşağıda gösterilen çıktıyı almalısınız:

25. Nginx web sunucusu artık alan adınızın içeriğini sunmalıdır. Bir kez daha tarayıcınıza gidin ve sunucunuzun etki alanına göz atın.

http://domain-name

Alan adınızın dizinindeki özel içeriğiniz gösterildiği gibi sunulacaktır.

Önemli Nginx Yapılandırma Dosyaları

Bitirmeden önce Nginx ile ilişkili bazı önemli yapılandırma dosyalarını incelememiz çok önemlidir.

Nginx Yapılandırma Dosyaları

  • /etc/nginx/nginx.conf: Bu ana yapılandırma dosyasıdır. Sunucunuzun gereksinimlerini karşılamak için ayarları değiştirebilirsiniz.
  • /etc/nginx/sites-available: Bu, sunucu bloğu yapılandırmasının saklandığı dizindir. Nginx, sunucu bloklarını yalnızca sitelerin etkin olduğu dizine bağlıysa kullanır.
  • /etc/nginx/sites-enabled: Dizin, zaten etkinleştirilmiş site başına Nginx sunucu bloklarını içerir.

Nginx Günlük Dosyaları

Nginx web sunucunuzdaki sorunları gidermek için kullanabileceğiniz iki ana günlük dosyası vardır:

  • /var/log/nginx/access.log: Bu, web sunucusuna yapılan tüm istekleri günlüğe kaydeder.
  • /var/log/nginx/error.log: Bu hata günlük dosyasıdır ve Nginx'in karşılaştığı tüm hataları kaydeder.
Çözüm

Bu eğitimin sonuna geldik. Ubuntu 20.04'e Nginx'i nasıl kurabileceğinizi ve alan adınızın içeriğini sunmak için Nginx sunucu bloklarını nasıl ayarlayabileceğinizi gösterdik. Geri bildiriminiz memnuniyetle karşılanır.