Nginx, yüksek performansı ve esnekliği ile tanınan bir web sunucusudur. Sunucu blokları, Nginx’in farklı alan adları ve web uygulamaları için yapılandırma ayarlarını tanımlaması için kullanılır. Bu yazıda, Nginx sunucu bloğu oluşturmanın aşamaları detaylandırılacaktır.
Nginx ve Sunucu Bloğu Nedir?
Nginx, web sunucusu olarak çalışmakla birlikte, ters proxy sunucusu, yük dengeleyici ve HTTP önbellekleme sunucusu olarak da işlev görebilir. Sunucu blokları ise, Nginx’in yalnızca bir IP adresi ya da alan adı bağlamında nasıl davranacağını belirleyen ayar gruplarıdır. Her sunucu bloğu, dinleme portu, alan adı, kök dizin gibi bilgileri barındırır ve gelen taleplerin nasıl işlenmesi gerektiğini tanımlar.
Temel Yapılandırma
Bir Nginx sunucu bloğu, genellikle `/etc/nginx/sites-available/` dizininde oluşturulur. Yalnızca bir dosya oluşturmak yeterli değildir; oluşturulan dosyanın `/etc/nginx/sites-enabled/` dizinine sembolik olarak bağlanması gereklidir. Örnek bir dosya yapısı aşağıdaki gibidir:
“`
sudo nano /etc/nginx/sites-available/example.com
“`
Bir Nginx sunucu bloğunun temel yapısı aşağıdaki şekilde bulunur:
“`
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
“`
Alan Adları ve Dinleme Portları
`listen` direktifi, sunucu bloğunun hangi port üzerinden çalışacağını tanımlar. Genellikle 80 (HTTP) ve 443 (HTTPS) portları kullanılır. `server_name` direktifi ise, sunucu bloklarının hangi alan adlarına yanıt vereceğini belirtir. Bu sayede birden fazla alan adı tek bir Nginx sunucusunda barındırılabilir.
Kök Dizini ve İndeks Dosyası
`root` direktifi, istemcilerin eriştiği dosyaların bulunduğu dizini belirtir. Bu dizin, sunucu bloğunun temel kök dizinini tanımlar. `index` direktifi ise, dizin talep edildiğinde hangi dosyaların öncelikle sunulacağını belirler. Genellikle `index.html` veya `index.php` dosyaları kullanılır.
İstek Yönlendirme
`location` direktifi, URL yollarına göre özel ayarlar yapılmasına olanak tanır. Örneğin, yukarıdaki yapıdaki `/` konumu, belirtilen dosyaların sunulması için bir kural seti sağlar. `try_files` direktifi, isteklerin belirtilen dosya ve dizinlerde mevcut olup olmadığını kontrol eder. Eğer belirtilen dosya veya dizin yoksa, 404 hatası döndürülür.
HTTPS Desteği
Güvenli bir bağlantı sağlamak için, HTTPS desteği eklemek gerekebilir. Bunun için sertifika ve anahtar dosyaları gereklidir. Aşağıda, HTTPS desteği için gerekli ayarlar yer almaktadır:
“`
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/ssl/certs/example.com.crt;
ssl_certificate_key /etc/ssl/private/example.com.key;
root /var/www/example.com/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
“`
Burada `ssl_certificate` ve `ssl_certificate_key` direktifleri, SSL sertifikası ve anahtarı dosyalarının yolunu belirtmektedir. HTTPS ayarları, güvenli bağlantı ihtiyaçlarına göre düzenlenebilir.
Konfigürasyonun Test Edilmesi
Yapılandırma dosyaları düzenlendikten sonraki adım, Nginx yapılandırma dosyasını test etmektir. Bu test, yazılmış olan yapılandırmanın doğru bir şekilde tanımlandığını kontrol eder. Aşağıdaki komut ile yapılandırma kontrol edilebilir:
“`
sudo nginx -t
“`
Yapılandırma dosyası doğruysa, “syntax is ok” ve “test is successful” mesajları alınır. Eğer bir hata varsa, hata mesajı ile hangi bölümde sorun olduğu belirtilir.
Değişikliklerin Uygulanması
Yapılandırma dosyası test edildikten sonra, Nginx servisini yeniden başlatarak yapılmış olan değişikliklerin aktif hale gelmesi sağlanır. Bu işlem için aşağıdaki komut kullanılır:
“`
sudo systemctl restart nginx
“`
Bu adım tamamlandığında, sunucu bloğu ile oluşturulan alan adı üzerinden web sayfası erişilebilir hale gelir.
Son Kontroller
Son olarak, oluşturulan sunucu bloğunun çalışıp çalışmadığını kontrol etmek için tarayıcıda alan adı girilmesi gereklidir. Eğer her şey doğru yapılandırıldıysa, istenen web sayfası başarıyla yüklenir.
Nginx sunucu bloğu oluşturma süreci, doğru yönlendirmeler ve ayarlarla güvenli ve hızlı bir web sunumu sağlamanın temellerini oluşturur. İyi yapılandırılmış bir Nginx sunucu bloğu, yüksek verimlilik ve güvenilir bir web deneyimi sunar.