Nginx, internetin en popüler web sunucularından biri olarak kabul edilir ve yüksek trafikli sitelerin barındırılmasında etkili bir şekilde kullanılır. Bu hafif ve güçlü sunucu, Ubuntu 20.04 ve 22.04 sürümlerine nasıl kurulur ve yapılandırılır, güvenlik duvarı ayarları nasıl yapılır ve birden fazla etki alanını barındırmak için sunucu blokları nasıl oluşturulur, tüm bu adımları SEO uyumlu bir şekilde ele alacağız.
Ön Gereksinimler
Bu kılavuzu uygulamadan önce, sunucunuzda sudo ayrıcalıklarına sahip bir normal kullanıcı hesabınızın olması gerekmektedir. Eğer sunucunuzda böyle bir kullanıcı yoksa, ilk olarak Ubuntu 20.04 Sunucusuna İlk Adımlar rehberimize göz atarak bir kullanıcı hesabı oluşturabilirsiniz.
Kullanılabilir bir hesabınız olduğunda, aşağıdaki adımları izleyerek Nginx’i kurabilir ve yapılandırabilirsiniz.
1. Adım – Nginx Kurulumu
Nginx, Ubuntu’nun varsayılan depolarında bulunduğu için, aşağıdaki komutları kullanarak Nginx’i kurabilirsiniz:
sudo apt update
sudo apt install nginx
Bu komutları girdikten sonra, apt paket yöneticisi Nginx’i ve gerekli bağımlılıkları sunucunuza indirecek ve kuracaktır.
2. Adım – Güvenlik Duvarı Ayarları
Nginx’i kullanmadan önce, güvenlik duvarınızı Nginx’e erişime izin verecek şekilde ayarlamalısınız. Nginx, kurulum sırasında ufw (Uncomplicated Firewall) ile bir hizmet olarak kaydedilir. İlk olarak, kullanılabilir ufw uygulama profillerini listeleyerek başlayın:
sudo ufw app list
Bu komut, aşağıdaki gibi çıktı vermelidir:
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Bu profillerden Nginx HTTP’yi, yani yalnızca 80 numaralı bağlantı noktasını açmak için aşağıdaki komutu kullanabilirsiniz:
sudo ufw allow 'Nginx HTTP'
Değişikliği doğrulamak için aşağıdaki komutu kullanarak güvenlik duvarı durumunu kontrol edebilirsiniz:
sudo ufw status
3. Adım – Nginx Web Sunucusunu Kontrol Etme
Kurulumun sonunda, Nginx zaten çalışır durumda olmalıdır. Bunun doğrulamak için aşağıdaki komutu kullanabilirsiniz:
sudo systemctl status nginx
Bu komutun çıktısı şuna benzer olmalıdır:
nginx.service - A high-performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-04-20 16:08:19 UTC; 3 days ago
Docs: man:nginx(8)
Main PID: 2369 (nginx)
Tasks: 2 (limit: 1153)
Memory: 3.5M
CGroup: /system.slice/nginx.service
├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2380 nginx: worker process
Nginx başarıyla çalışıyor demektir. Şimdi tarayıcınızı kullanarak sunucunuzun IP adresine gidin:
http://sunucu_ip_adresiniz
Bu adresteki varsayılan Nginx açılış sayfasını görmelisiniz.
4. Adım – Nginx Sürecini Yönetme
Web sunucunuz artık çalışıyor, ancak yönetim komutlarını öğrenmek işleri daha da kolaylaştırır.
- Nginx’i durdurmak için:
sudo systemctl stop nginx
Nginx’i başlatmak için:
sudo systemctl start nginx
Nginx’i yeniden başlatmak için:
sudo systemctl restart nginx
Yapılandırma değişiklikleri yaptıysanız ve Nginx’i yeniden başlatmak istiyorsanız:
sudo systemctl reload nginx
Varsayılan olarak, Nginx, sunucu başladığında otomatik olarak başlar. Bu davranışı devre dışı bırakmak isterseniz:
sudo systemctl disable nginx
Hizmetin başlangıçta başlamasını yeniden etkinleştirmek için:
sudo systemctl enable nginx
5. Adım – Sunucu Blokları Oluşturma (Tavsiye Edilen)
Birden fazla etki alanını barındırmak istiyorsanız, sunucu bloklarını kullanabilirsiniz. İşte adım adım bir sunucu bloğu oluşturmanın ve yapılandırmanın nasıl yapıldığı:
Öncelikle, alan adınıza özgü bir dizini oluşturun:
sudo mkdir -p /var/www/alan_adınız/html
Dizin sahipliğini atamak için aşağıdaki komutu kullanın:
sudo chown -R $USER:$USER /var/www/alan_adınız/html
Dizin sahipliğini atamak için aşağıdaki komutu kullanın:
sudo chown -R $USER:$USER /var/www/alan_adınız/html
Dosya izinlerini ayarlamak için aşağıdaki komutu kullanabilirsiniz:
sudo chmod -R 755 /var/www/alan_adınız
Daha sonra, bir örnek index.html
dosyası oluşturun ve içeriğini düzenleyin:
nano /var/www/alan_adınız/html/index.html
index.html
dosyasına aşağıdaki örnek içeriği ekleyin:
<html>
<head>
<title>alan_adınız'e Hoş Geldiniz!</title>
</head>
<body>
<h1>Tebrikler! alan_adınız sunucu bloğu çalışıyor!</h1>
</body>
</html>
Dosyayı kaydedin ve kapatmak için CTRL+X, ardından Y ve Enter tuşlarına basın.
Şimdi, yeni bir sunucu bloğu yapılandırma dosyası oluşturmak için aşağıdaki komutu kullanın. Bu komut size bir metin düzenleyici açacaktır:
sudo nano /etc/nginx/sites-available/alan_adınız
Aşağıdaki yapılandırmayı bu dosyaya yapıştırın:
server {
listen 80;
listen [::]:80;
root /var/www/alan_adınız/html;
index index.html index.htm index.nginx-debian.html;
server_name alan_adınız www.alan_adınız;
location / {
try_files $uri $uri/ =404;
}
}
Bu yapılandırmada, root
ayarını oluşturduğunuz dizine (/var/www/alan_adınız/html
) yönlendiriyoruz ve sunucu adınızı (server_name
) ekliyoruz.
Şimdi, bu yapılandırma dosyasını etkinleştirmek için bir sembolik bağlantı oluşturun:
sudo ln -s /etc/nginx/sites-available/alan_adınız /etc/nginx/sites-enabled/
Artık iki sunucu bloğu etkinleştirildi ve alan_adınız isteklerine yanıt vermek için yapılandırılmış durumda.
Nginx yapılandırma dosyalarınızda bir hata olup olmadığını kontrol etmek için aşağıdaki komutu kullanabilirsiniz:
sudo nginx -t
Herhangi bir hata yoksa, değişiklikleri etkinleştirmek için Nginx’i yeniden başlatın:
sudo systemctl restart nginx
Artık alan_adınız üzerinden Nginx sunucunuzun çalıştığını görmelisiniz.
6. Adım – Önemli Nginx Dosyalarını ve Dizinlerini Tanımak
Nginx sunucusunu daha iyi yönetmek için önemli dosyaları ve dizinleri tanımak faydalı olabilir:
- İçerik: Varsayılan olarak, web içeriği
/var/www/html
dizininde bulunur. Bu dizini Nginx yapılandırma dosyalarında değiştirebilirsiniz. - Sunucu Konfigürasyonu: Nginx ile ilgili tüm konfigürasyon dosyaları
/etc/nginx
klasöründe bulunur. Ana Nginx yapılandırma dosyası/etc/nginx/nginx.conf
‘dir ve genel yapılandırmayı değiştirmenize olanak tanır. - Sunucu Blokları: Sunucu blokları, her bir site için yapılandırmaları içeren
/etc/nginx/sites-available/
dizininde saklanır. Bu yapılandırmaları etkinleştirmek için/etc/nginx/sites-enabled/
dizininde sembolik bağlantılar oluşturulur. - Snippets:
/etc/nginx/snippets
dizini, Nginx yapılandırmasında başka yerlere eklenebilecek yapılandırma parçalarını içerir. Bu, tekrar kullanılabilir yapılandırma segmentlerini tanımlamak için kullanışlıdır. - Sunucu Günlükleri (Loglar): Nginx günlükleri
/var/log/nginx
dizininde bulunur.access.log
, gelen tüm istekleri kaydederken,error.log
hataları kaydeder.
Bu rehber, Ubuntu 20.04 ve 22.04 sunucularına Nginx kurulumu ve yapılandırılmasını adım adım açıklamıştır. Bu, web sunucunuzu kullanmaya başlamanız ve birden fazla alanı barındırmanız için temel bilgileri sağlar.