Ubuntu 18.04'e Nginx nasıl kurulur?

0 Hisse senetleri
0
0
0
0

giriiş

Nginx, dünyanın en popüler web sunucularından biridir ve internetteki en büyük ve en çok ziyaret edilen sitelerin bazılarını barındırır. Çoğu durumda Apache'den daha kaynak dostudur ve web sunucusu veya ters proxy olarak kullanılabilir.

Bu kılavuzda, Ubuntu 18.04 sunucusuna Nginx'in nasıl kurulacağını ve önemli Nginx dosyaları ve dizinleri hakkında bilgi edineceksiniz.

Ön koşullar

Bu kılavuza başlamadan önce, sunucunuzda sudo ayrıcalıklarına ve temel bir güvenlik duvarına sahip, kök olmayan normal bir kullanıcı yapılandırmanız gerekir. Ubuntu 18.04 için temel sunucu kurulum kılavuzumuzu izleyerek normal bir kullanıcı hesabının nasıl yapılandırılacağını öğrenebilirsiniz.

Bir hesabınız olduğunda, başlamak için kök olmayan bir kullanıcı olarak oturum açın.

Adım 1 – Nginx'i yükleyin

Nginx, varsayılan Ubuntu depolarında mevcut olduğundan, apt paketleme sistemini kullanarak bu depolardan kurulabilir.

Bu, bu oturumda apt paketleme sistemiyle ilk etkileşiminiz olabileceğinden, en güncel paket listelerine erişmek için yerel paket dizininizi yenileyin. Ardından nginx'i yükleyebilirsiniz:

sudo apt update
sudo apt install nginx

İşlemi kabul ettikten sonra apt, Nginx'i ve gerekli tüm bağımlılıkları sunucunuza kuracaktır.

Adım 2 – Güvenlik Duvarını Yapılandırın

Nginx'i test etmeden önce, güvenlik duvarı yazılımının servise erişime izin verecek şekilde yapılandırılması gerekir. Kurulumdan sonra Nginx, UFW ile kendini bir servis olarak kaydeder ve bu da Nginx'e erişime izin vermeyi kolaylaştırır.

Aşağıdakileri yazarak ufw'nin nasıl çalışacağını bildiği uygulama yapılandırmalarını listeleyin:

sudo ufw app list

Çıktınız uygulama profillerinin bir listesi olmalıdır:

Output
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH

Bu liste Nginx için kullanılabilen üç profili göstermektedir:

  • Nginx Full: Bu profil hem 80 portunu (normal, şifrelenmemiş web trafiği) hem de 443 portunu (TLS/SSL şifreli trafik) açar.
  • Nginx HTTP: Bu profil yalnızca 80 portunu açar (normal, şifrelenmemiş web trafiği)
  • Nginx HTTPS: Bu profil yalnızca 443 portunu açar (TLS/SSL şifreli trafik)

Yapılandırdığınız trafiğe izin veren en kısıtlayıcı profili etkinleştirmeniz önerilir. Bu kılavuzda sunucunuz için SSL'yi henüz yapılandırmadığınız için, yalnızca 80 numaralı bağlantı noktasındaki trafiğe izin vermeniz yeterlidir.

Aşağıdakini yazarak bunu etkinleştirebilirsiniz:

sudo ufw allow 'Nginx HTTP'

Daha sonra değişikliği onaylayın:

sudo ufw status

Çıktıda izin verilen HTTP trafiğinin bir listesini almalısınız:

Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere 
Nginx HTTP ALLOW Anywhere 
OpenSSH (v6) ALLOW Anywhere (v6) 
Nginx HTTP (v6) ALLOW Anywhere (v6)

Artık uygun güvenlik duvarı kuralını eklediğinize göre, web sunucunuzun çalıştığını ve içeriği düzgün bir şekilde sunabildiğini kontrol edebilirsiniz.

Adım 3 – Web sunucunuzu kontrol edin

Kurulum işleminin sonunda Ubuntu 18.04 Nginx'i başlatacaktır. Web sunucusu zaten başlatılmış olmalıdır.

Servisin çalıştığından emin olmak için systemd init ile kontrol edin:

systemctl status nginx
Output
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
Active: active (running) since Fri 2021-10-01 21:36:15 UTC; 35s ago
Docs: man:nginx(8)
Main PID: 9039 (nginx)
Tasks: 2 (limit: 1151)
CGroup: /system.slice/nginx.service
├─9039 nginx: master process /usr/sbin/nginx -g daemon on; master_pro
└─9041 nginx: worker process

Bu çıktı, servisin başarıyla başlatıldığını gösterir. Ancak, test etmenin en iyi yolu Nginx'ten bir sayfa isteğinde bulunmaktır.

Yazılımın düzgün çalıştığını doğrulamak için sunucunuzun IP adresine giderek varsayılan Nginx açılış sayfasına erişebilirsiniz. Sunucunuzun IP adresini bilmiyorsanız, birkaç farklı yolla öğrenebilirsiniz.

Sunucunuzun komut satırına aşağıdakileri yazmayı deneyin:

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Birkaç satır göreceksiniz. Her birini web tarayıcınızda deneyerek işe yarayıp yaramadıklarını kontrol edebilirsiniz.

Alternatif olarak, internetteki başka bir konumdan tanımlandığı gibi genel IP adresinizi oluşturması gereken aşağıdaki komutu çalıştırabilirsiniz:

curl -4 icanhazip.com

Sunucunuzun IP adresini aldıktan sonra, bunu tarayıcınızın adres çubuğuna girin:

http://your_server_ip

Varsayılan Nginx açılış sayfasını almalısınız:

Bu sayfa sunucunun düzgün çalıştığını doğrulamak için Nginx ile birlikte gelir.

Adım 4 – Nginx Sürecini Yönetin

Artık web sunucunuzu kurduğunuza göre, bazı temel yönetim komutlarını gözden geçirelim.

Web sunucunuzu durdurmak için aşağıdakileri yazın:

sudo systemctl stop nginx

Web sunucusunun durması durumunda onu başlatmak için aşağıdakileri yazın:

sudo systemctl start nginx

Hizmeti durdurup yeniden başlatmak için aşağıdakileri yazın:

sudo systemctl restart nginx

Yalnızca yapılandırma değişiklikleri yapıyorsanız, genellikle bağlantıları kaldırmadan Nginx'i yeniden başlatabilirsiniz. Bunu yapmak için aşağıdakileri yazın:

sudo systemctl reload nginx

Varsayılan olarak, Nginx sunucu başlatıldığında otomatik olarak başlayacak şekilde yapılandırılmıştır. Eğer bu sizin isteğiniz değilse, aşağıdaki komutu yazarak bu davranışı devre dışı bırakabilirsiniz:

sudo systemctl disable nginx

Hizmetin önyükleme sırasında yeniden başlatılmasını sağlamak için aşağıdakileri yazabilirsiniz:

sudo systemctl enable nginx

Sunucu başlatıldığında Nginx artık otomatik olarak yeniden başlatılmalıdır.

Adım 5 – Sunucu bloklarını ayarlayın (önerilir)

Nginx web sunucusunu kullanırken, yapılandırma ayrıntılarını kapsüllemek ve tek bir sunucudan birden fazla alan adı barındırmak için sunucu blokları (Apache'deki sanal ana bilgisayarlara benzer) kullanılabilir. Biz your_domain adında bir alan adı oluşturacağız, ancak bunu kendi alan adınızla değiştirmelisiniz. DigitalOcean ile alan adı kurulumu hakkında daha fazla bilgi için DigitalOcean DNS'e giriş bölümümüzü inceleyin.

Ubuntu 18.04'teki Nginx, varsayılan olarak etkin olan ve belgeleri /var/www/html dizininin dışında sunmak üzere yapılandırılmış bir sunucu bloğuna sahiptir. Bu, tek bir site için iyi çalışsa da, birden fazla site barındırıyorsanız zahmetli olabilir. /var/www/html dizinini değiştirmek yerine, your_domain sitemiz için /var/www dizininde bir dizin yapısı oluşturalım ve istemcinin isteğiyle eşleşmemesi durumunda hizmet verilecek varsayılan dizin olarak /var/www/html dizinini bırakalım. Diğer siteler

Aşağıdaki gibi your_domain için bir dizin oluşturun ve gerekli tüm üst dizinleri oluşturmak için -p bayrağını kullanın:

sudo mkdir -p /var/www/your_domain/html

Daha sonra dizinin sahipliğini $USER ortam değişkeniyle atayın:

sudo chown -R $USER:$USER /var/www/your_domain/html

Umask değerinizi değiştirmediyseniz, web kök izinleriniz doğru olmalı, ancak aşağıdakileri yazarak kontrol edebilirsiniz:

sudo chmod -R 755 /var/www/your_domain

Daha sonra nano veya favori düzenleyicinizi kullanarak örnek bir index.html sayfası oluşturun:

nano /var/www/your_domain/html/index.html

İçerisine aşağıdaki HTML örneğini ekleyin:

<html>
<head>
<title>Welcome to your_domain!</title>
</head>
<body>
<h1>Success! The your_domain server block is working!</h1>
</body>
</html>

İşiniz bittiğinde dosyayı kaydedip kapatın. Nano kullanıyorsanız, CTRL + X, ardından Y ve ENTER tuşlarına basarak çıkabilirsiniz.

Nginx'in bu içeriği sunabilmesi için doğru talimatlarla bir sunucu bloğu oluşturmanız gerekir. Varsayılan yapılandırma dosyasını doğrudan değiştirmek yerine, /etc/nginx/sites-available/your_domain dizininde yeni bir dosya oluşturun:

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

Yeni dizininiz ve etki alanı adınız için varsayılana benzer ancak güncellenmiş olan aşağıdaki yapılandırma bloğunu ekleyin:

server {
listen 80;
listen [::]:80;
root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;
server_name your_domain.com www.your_domain;
location / {
try_files $uri $uri/ =404;
}
}

Kök yapılandırmasını yeni dizine, sunucu_adı yapılandırmasını ise etki alanı adına güncellediğimizi unutmayın. İşiniz bittiğinde dosyayı kaydedip kapatın.

Daha sonra dosyayı sites-enabled dizinine bir bağlantı oluşturarak etkinleştirin; Nginx başladığında bu dizinden okuyacaktır:

sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

Artık iki sunucu bloğu etkinleştirildi ve listen ve server_name yönergelerine dayalı isteklere yanıt verecek şekilde yapılandırıldı (Nginx'in bu yönergeleri nasıl işlediği hakkında daha fazla bilgiyi burada okuyabilirsiniz):

  • your_domain: your_domain ve www.your_domain için gelen isteklere yanıt verir.
  • Varsayılan: Diğer iki blokla eşleşmeyen 80 numaralı porttaki tüm isteklere yanıt verir.

Ek sunucu adları eklemekten kaynaklanabilecek olası karma kovası bellek sorununu önlemek için, /etc/nginx/nginx.conf dosyasında tek bir değer ayarlamak gerekir. Dosyayı açın:

sudo nano /etc/nginx/nginx.conf

server_names_hash_bucket_size komutunu bulun ve satırın yorumunu kaldırmak için # sembolünü kaldırın:

...
http {
...
server_names_hash_bucket_size 64;
...
}
...

İşiniz bittiğinde dosyayı kaydedip kapatın.

Daha sonra Nginx dosyalarınızın hiçbirinde sözdizimi hatası olmadığından emin olmak için test edin:

sudo nginx -t

Herhangi bir sorun yoksa, yaptığınız değişikliklerin etkili olması için Nginx'i yeniden başlatın:

sudo systemctl restart nginx

Nginx artık alan adınıza hizmet veriyor olmalı. Bunu http://your_domain adresine giderek test edebilirsiniz. Burada aşağıdaki gibi bir şey görmelisiniz:

Adım 6 – Önemli Nginx dosyaları ve dizinleriyle tanışın

Artık Nginx servisini nasıl yöneteceğinizi öğrendiğinize göre, birkaç önemli dizin ve dosyaya aşina olmak için birkaç dakikanızı ayırmanız gerekir.

İçerik
  • /var/www/html: Varsayılan olarak yalnızca daha önce gördüğünüz Nginx varsayılan sayfasından oluşan gerçek web içeriği, /var/www/html dizininin dışında sunulur. Bu, Nginx yapılandırma dosyalarını düzenleyerek değiştirilebilir.
Sunucu yapılandırması
  • /etc/nginx: Nginx yapılandırma dizini. Tüm Nginx yapılandırma dosyaları burada bulunur.
  • /etc/nginx/nginx.conf: Ana Nginx yapılandırma dosyası. Genel Nginx yapılandırmasında değişiklik yapmak için düzenlenebilir.
  • /etc/nginx/sites-available/: Her site için sunucu bloklarının depolanabileceği bir dizin. Nginx, sites-enabled dizinine bağlanmadıkları sürece bu dizindeki yapılandırma dosyalarını kullanmaz. Genellikle tüm sunucu bloğu yapılandırması bu dizinde yapılır ve ardından başka bir dizine bağlanarak etkinleştirilir.
  • /etc/nginx/sites-enabled/: Her site için etkinleştirilen sunucu engellemelerinin depolandığı dizin. Bunlar genellikle mevcut siteler dizinindeki yapılandırma dosyalarına bağlanarak oluşturulur.
  • /etc/nginx/snippets: Bu dizin, Nginx yapılandırmasının başka yerlerine eklenebilecek yapılandırma kod parçacıklarını içerir. Yapılandırmanın tekrarlanabilir bölümleri, kod parçacıklarına yeniden dönüştürülmek için iyi adaylardır.
Sunucu raporları
  • /var/log/nginx/access.log: Nginx aksi şekilde yapılandırılmadığı sürece web sunucunuza yapılan her istek bu günlük dosyasına kaydedilir.
  • /var/log/nginx/error.log: Nginx'le ilgili tüm hatalar bu günlükte kaydedilir.

Sonuç

Artık web sunucunuz kurulu olduğuna göre, daha zengin bir deneyim yaratmak için kullanmak istediğiniz içerik ve teknoloji türü konusunda birçok seçeneğiniz var.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Ayrıca Şunları da Beğenebilirsiniz