Nginx Nedir?
Nginx, yüksek performanslı bir web sunucusu, ters proxy sunucusu ve e-posta proxy sunucusu olarak görev yapabilen açık kaynaklı bir yazılımdır. Gelişmiş özellikleri ve düşük kaynak tüketimi sayesinde, birçok web yöneticisi ve geliştirici tarafından tercih edilmektedir. Nginx, statik içerik sunma, yük dengeleme, SSL/TLS desteği ve sanal ana bilgisayar (virtual host) yapılandırması gibi işlevleri destekler.
Sanal Ana Bilgisayarlar (Virtual Hosts) Nedir?
Sanal ana bilgisayarlar, bir sunucu üzerinde birden fazla web sitesinin barındırılmasını sağlayan bir yöntemdir. Bu yapı, tek bir IP adresi altında birden fazla alan adının işletilmesine olanak tanır. Nginx üzerinde sanal ana bilgisayar yapılandırması ile her web sitesinin farklı ayarları ve kök dizinleri (document root) tanımlanabilir. Bu, uygulamaların ayrı ayrı çalıştırılmasını ve yönetilmesini kolaylaştırır.
Nginx’in Kurulumu
Nginx kurulumu öncelikle sunucuda gerekli prosedürlerin gerçekleştirilmesi ile başlar. Çoğu Linux dağıtımında, Nginx paketi resmi paket yöneticilerine eklenmiştir. Örneğin, Ubuntu veya Debian üzerinde aşağıdaki komutla Nginx kurulumu gerçekleştirilebilir:
“`
sudo apt update
sudo apt install nginx
“`
Kurulumdan sonra Nginx servisi başlatılabilir ve otomatik olarak başlatılması sağlanabilir:
“`
sudo systemctl start nginx
sudo systemctl enable nginx
“`
Nginx’in başarıyla kurulduğunu doğrulamak için tarayıcıda “http://sunucu_ip_adresi” adresine giderek varsayılan Nginx sayfası kontrol edilebilir.
Sanal Ana Bilgisayar Yapılandırması
Nginx’de sanal ana bilgisayar yapılandırması için, genellikle “/etc/nginx/sites-available/” dizini altında bir yapılandırma dosyası oluşturulması ve ardından bu dosyanın “/etc/nginx/sites-enabled/” dizinine bağlantı verilmesi tercih edilmektedir. Bu işlem için aşağıdaki adımlar izlenebilir:
1. Yeni Sanal Ana Bilgisayar Dosyasının Oluşturulması: Aşağıdaki örnekte, “example.com” alan adı için bir yapılandırma dosyası oluşturulmaktadır.
“`
sudo nano /etc/nginx/sites-available/example.com
“`
2. Yapılandırma Dosyasının Düzenlenmesi: Aşağıdaki örnek yapılandırma dosyası, örnek alan adı için gerekli ayarları içermektedir.
“`
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;
}
}
“`
Bu yapılandırmada, `listen` direktifi sunucunun hangi portta dinleyeceğini belirtirken, `server_name` direktifi ise hangi alan adlarının bu sanal host’a yönlendirileceğini tanımlar. `root` direktifi, web sitenin kök dizinini belirler.
3. Dizinlerin Oluşturulması: Belirtilen kök dizininde, gerekli dizin yapısının oluşturulması gerekir. Aşağıdaki komut ile ilgili dizin yapısı oluşturulabilir:
“`
sudo mkdir -p /var/www/example.com/html
“`
Ayrıca, bir örnek HTML dosyası oluşturmak için aşağıdaki komut kullanılabilir:
“`
echo “
Welcome to Example.com!
” | sudo tee /var/www/example.com/html/index.html
“`
4. Sanal Ana Bilgisayarın Etkinleştirilmesi: Oluşturulan yapılandırma dosyasının etkinleştirilmesi için aşağıdaki bağlantı komutu kullanılabilir:
“`
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
“`
5. Nginx Yapılandırmasının Test Edilmesi: Yapılandırmada bir hata olup olmadığını kontrol etmek için aşağıdaki komut kullanılabilir:
“`
sudo nginx -t
“`
6. Nginx Servisinin Yeniden Başlatılması: Değişikliklerin uygulanabilmesi için Nginx servisi yeniden başlatılmalıdır:
“`
sudo systemctl restart nginx
“`
Birden Fazla Sanal Ana Bilgisayar
Birden fazla sanal ana bilgisayar yapılandırmak için yukarıdaki adımlar her alan adı için tekrarlanabilir. Örneğin, “example2.com” alan adı için yeni bir yapılandırma dosyası oluşturulabilir ve aynı adımlarla yapılandırma tamamlanabilir. Her bir sanal ana bilgisayarın yapılandırma dosyası kendi içinde bağımsız olarak yönetilebilir.
Güvenlik ve SSL
Güvenlik, web siteleri için kritik öneme sahiptir. Let’s Encrypt gibi ücretsiz bir SSL sertifikası sağlayıcı kullanılarak Nginx üzerinde SSL yapılandırması yapılabilir. SSL sertifikaları, HTTPS üzerinden güvenli bağlantılar sağlamak için gereklidir. Nginx üzerinde SSL yapılandırmak için, her sanal ana bilgisayar için `listen 443 ssl;` direktifi eklenmeli ve sertifika dosyalarının konumu belirtilmelidir.
Sonuç
Nginx üzerinde birden fazla web sitesi yayınlamak, sanal ana bilgisayar yapılandırması sayesinde kolayca gerçekleştirilebilmektedir. Bu yapılandırma, web sitelerinin yönetimini ve bakımını basitleştirirken kaynakların etkin kullanımını da sağlamaktadır. Her bir sanal ana bilgisayar bağımsız olarak yapılandırılabilir ve ihtiyaçlara göre özelleştirilebilir. Bu özellikler, Nginx’i yüksek trafikli web siteleri için ideal bir sunucu haline getirmektedir.