Nginx, yüksek performanslı bir web sunucusu ve ters proxy sunucusu olarak yaygın bir şekilde kullanılan bir yazılımdır. Nginx yapılandırmaları, sanal ana bilgisayarlar (virtual hosts) oluşturmak için ‘server blocks’ kullanır. Varsayılan sunucu bloğu, isteklerin belirli bir IP adresine veya alan adına yöneltilmediği durumlarda hangi sunucu bloğunun kullanılacağını belirler. Aşağıda Nginx varsayılan sunucu bloğunun nasıl yapılandırılacağı ile ilgili adımlar detaylı bir şekilde açıklanmaktadır.
Nginx Kurulumu
Nginx’in doğru bir şekilde çalışabilmesi için öncelikle sistemde kurulu olması gerekmektedir. Çoğu Linux dağıtımında Nginx, paket yöneticileri aracılığıyla kolaylıkla yüklenebilir. Örneğin, Ubuntu veya Debian tabanlı sistemlerde şu komut kullanılarak Nginx kurulumu gerçekleştirilebilir:
“`
sudo apt update
sudo apt install nginx
“`
Kurulumdan sonra, Nginx servisi başlatılmalı ve otomatik olarak sistemin açılışında çalışması sağlanmalıdır:
“`
sudo systemctl start nginx
sudo systemctl enable nginx
“`
Varsayılan Sunucu Bloğunu Oluşturmak
Nginx yapılandırma dosyalarında taşınabilirliği sağlamak için genellikle her bir sunucu bloğu ayrı bir dosyada tanımlanır. Varsayılan sunucu bloğu genellikle `sites-available` dizininde tanımlanır ve `sites-enabled` dizinine sembolik bağlantı oluşturularak etkinleştirilir. Varsayılan sunucu bloğu oluşturmak için aşağıdaki adımlar izlenebilir.
`/etc/nginx/sites-available/default` dosyasını açmak için tercih edilen bir metin düzenleyici kullanılabilir:
“`
sudo nano /etc/nginx/sites-available/default
“`
Varsayılan sunucu bloğu için temel bir yapı aşağıdaki gibidir:
“`
server {
listen 80 default_server;
server_name _;
location / {
root /var/www/html;
index index.html index.htm;
}
error_page 404 /404.html;
location = /404.html {
internal;
}
}
“`
İletişim Portları ve IP Ayarları
Yukarıdaki örnekte `listen 80 default_server;` satırı, sunucunun 80 numaralı port üzerinden gelen istekleri dinleyeceğini belirtir. `default_server` ifadesi, bu sunucu bloğunun varsayılan olarak kullanılacağını ifade eder.
`server_name _;` satırı, sunucu ismi belirtilmediğinde bu bloğun kullanılacağını belirler. `_`, Nginx’e tanımlı herhangi bir alan adının gelmesi durumunda bu sunucu bloğunun kullanılacağını ifade eder.
İçerik Katalogu Belirleme
`location /` bloğu, web sayfalarının hangi dizinden sunulacağını belirtir. `root /var/www/html;` ifadesi, istemcilerin dosyaları isteyeceği kök dizinini tanımlar. `index index.html index.htm;` ifadesi ise istemcinin yapacağı istek sonucu hangi dizin dosyasının ilk olarak deneneceğini belirtir.
Hatalara Yönlendirme
Sunucu yapılandırmasında hata sayfalarını belirlemek için `error_page` direktifi kullanılmaktadır. Örnekte `error_page 404 /404.html;` satırı, 404 hatası alındığında `404.html` dosyasının gösterileceğini belirtir. `location = /404.html` bloğu ise, bu hatanın yalnızca içsel yönlendirmelerden geldiğini ifade eder, yani dışarıdan doğrudan erişilemeyecektir.
Yapılandırmayı Test Etme
Yapılandırma dosyası düzenlenip kaydedildikten sonra, Nginx yapılandırmasının doğruluğunu kontrol etmek için aşağıdaki komut kullanılmalıdır:
“`
sudo nginx -t
“`
Bu komut herhangi bir hata mesajı dönmezse yapılandırma dosyasının doğru olduğunu belirtir. Eğer hata varsa, belirttiği satırlarda gerekli düzeltmeler yapılmalıdır.
Nginx’i Yeniden Başlatma
Yapılandırma değişikliklerinin etkin olması için Nginx servisi yeniden başlatılmalıdır. Bunun için aşağıdaki komut kullanılabilir:
“`
sudo systemctl restart nginx
“`
Diğer Dikkat Edilmesi Gerekenler
Varsayılan sunucu bloğu, tüm alan adları ve IP adreslerine yanıt vereceği için dikkatli bir şekilde yapılandırılmalıdır. Sunucu bloğunun içeriği, güvenlik açısından önem taşımaktadır. Gereksiz bilgiler ve dosyalar sunucu üzerinde barındırılmamalıdır. Ayrıca, SSL/TLS ayarlarının yapılması durumunda 443 numaralı port üzerinde bir yapılandırma bloğu eklenmelidir.
Bu yapılandırma, temel bir Nginx varsayılan sunucu bloğu oluşturur. İhtiyaçlar doğrultusunda daha karmaşık yapılandırmalar ile Nginx’in kapasiteleri genişletilebilir.