Nginx Nedir?
Nginx, yüksek performanslı bir web sunucusu, ters proxy sunucusu ve e-posta proxy sunucusu olarak kullanılan bir yazılımdır. Açık kaynak olarak dağıtılan Nginx, özellikle yüksek trafik olan web siteleri için tercih edilen bir çözüm olarak bilinir. Nginx, asenkron olay tabanlı mimarisi sayesinde çok sayıda eşzamanlı bağlantıyı yönetme kapasitesine sahiptir. Bu özellikleri, onu yaygın bir şekilde web sunucusu olarak kullanıma uygun hale getirir.
Nginx Kurulumu
Nginx’i bir sunucuya kurmak için öncelikle uygun bir işletim sistemi ve ortam gereklidir. Nginx, genellikle Linux tabanlı işletim sistemlerinde kullanılır. Kurulum için genellikle aşağıdaki adımlar izlenir:
1. Gerekli Paketlerin Güncellenmesi: Sunucu üzerindeki paket yöneticisi kullanılarak tüm sistem bileşenlerinin güncel olmasına dikkat edilmelidir.
“`
sudo apt update
sudo apt upgrade
“`
2. Nginx Kurulumu: Nginx kurulumunu başlatmak için aşağıdaki komut kullanılabilir.
“`
sudo apt install nginx
“`
3. Nginx’in Başlatılması: Nginx, kurulumdan sonra otomatik olarak başlamış olmalıdır. Ancak durum kontrolü için aşağıdaki komut kullanılabilir.
“`
sudo systemctl start nginx
sudo systemctl enable nginx
“`
4. Güvenlik Duvarı Ayarları: Nginx’in çalışabilmesi için gerekli portların (genellikle 80 ve 443) açık olduğundan emin olunmalıdır. Bu, güvenlik duvarının yapılandırılması ile sağlanabilir.
“`
sudo ufw allow ‘Nginx Full’
“`
Web Sitesi Yayınlama
Web sitesinin yayınlanabilmesi için öncelikle bir alan adı veya IP adresine sahip olunması gerekmektedir. IP adresi utilizarak web sitesi yayını yapmak için Nginx konfigürasyonu şu şekilde gerçekleştirilir:
1. Web İçeriği Hazırlığı: İlk olarak sunucu üzerinde, yayınlanmak istenen web sitesi içeriği hazırlanmalıdır. Bu içerikler genellikle `/var/www/html` dizinine yerleştirilir.
2. Nginx Konfigürasyonu: Nginx konfigürasyonu, genellikle `/etc/nginx/sites-available` dizininde yer almaktadır. Yeni bir konfigürasyon dosyası oluşturularak web sitesi ayarları yapılmalıdır.
“`
sudo nano /etc/nginx/sites-available/example.com
“`
Örnek bir konfigürasyon dosyası aşağıdaki gibi olabilir:
“`
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
“`
3. Sembolik Bağlantı Oluşturma: Oluşturulan konfigürasyon dosyasının `/etc/nginx/sites-enabled` dizinine bir sembolik bağlantı ile eklenmesi gerekmektedir.
“`
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
“`
4. Nginx’in Yeniden Başlatılması: Yapılan değişikliklerin geçerli olması için Nginx sunucusunun yeniden başlatılması gerekmektedir.
“`
sudo systemctl restart nginx
“`
IP Adresi ile Erişim
Web sitesi yapılandırması tamamlandıktan sonra, IP adresi veya alan adı üzerinden erişim sağlanır. IP adresi ile erişim sağlamak için, tarayıcıda sunucunun IP adresi yazılması yeterlidir. Eğer herhangi bir yapılandırma hatası yoksa, Nginx üzerinden yayınlanan web sayfası görüntülenecektir.
SSL Sertifikası Eklemek
Web sitesi güvenliğini artırmak amacıyla SSL sertifikası eklenmesi önerilir. Let’s Encrypt gibi ücretsiz bir SSL sertifika sağlayıcı kullanılabilir. SSL sertifikası eklemek için şu adımlar izlenebilir:
1. Certbot ve Nginx Eklentisinin Kurulumu:
“`
sudo apt install certbot python3-certbot-nginx
“`
2. SSL Sertifikası Alma: Aşağıdaki komutla SSL sertifikası alınabilir.
“`
sudo certbot –nginx -d example.com
“`
3. Otomatik Yenileme: SSL sertifikalarının süresi dolmadan otomatik olarak yenilenmesi için bir cron işi oluşturulabilir. Aşağıdaki komut ile kontrol edilmesi sağlanabilir.
“`
sudo certbot renew –dry-run
“`
Hata Ayıklama
Nginx kurulumu ve yapılandırması sonrasında, eğer web sitesine erişim sağlanamıyorsa, hata ayıklama sürecine ihtiyaç duyulabilir. Nginx günlük dosyaları genellikle `/var/log/nginx/error.log` dizininde yer alır. Bu günlük dosyaları, hata kaynaklarını tespit etmek için incelenmelidir.
Nginx ile IP adresi üzerinden web sitesi yayınlama süreci, adım adım izlenmesi gereken bir süreçtir. İyi yapılandırılmış Nginx sunucusu, yüksek performans ve güvenlik sunarak, ziyaretçilere kaliteli bir deneyim sağlamak için önemli bir rol oynamaktadır.