Nginx, yüksek İnternet kullanıcı trafiğine sahip büyük siteleri barındırmak için popüler web sunucularından biridir. Ayrıca hem web sunucusu hem de ters proxy yapılandırması için kullanışlı yardımcı programlardan biri olarak kabul edilir.
Bu eğitimde aşağıdaki gibi özellikler incelenecektir:
- Nginx'i önceden konuşlandırılmış bir sunucuya yükleme;
- Güvenlik duvarı kurma;
- Tek bir sunucuda birden fazla etki alanı barındırmak için bir sunucu bloğu kurma.
İş için hazırlanma
Devam etmeden önce, Debian/Ubuntu/CentOS tabanlı bir sunucunun konuşlandırılması gerekir. Talimatlara göre sistemi yeni bir kullanıcı ve sudo haklarına sahip komutları çalıştırma hakları ile yapılandırın.
Yapılandırmanın başarılı olduğundan emin olduktan sonra, sunucumuza Nginx'i kurmaya devam edin.
Nginx Kurulumu
Nginx, çoğu işletim sisteminin depolarında bulunan standart bir pakettir. Sunucu yakın zamanda yapılandırılmışsa, yazılım paketi dizinlerini güncelleyin ve Nginx paketini yükleyin:
apt install nginx -y
y tuşu ile paketin otomatik olarak yüklenmesini kabul edin.
Güvenlik duvarını yapılandırma
Nginx paketini kurduktan sonra, Nginx'e dışarıdan erişime izin vermek için bir güvenlik duvarı yapılandırılmalıdır.
Güvenlik duvarı kuralları listesine eklenen mevcut yardımcı programlara bakalım:
Daha sonra kurallara dahil edeceğimiz listede aşağıdaki satırlar bulunmalıdır:
Nginx HTTP - normal ve trafik şifrelenmemiş
Nginx HTTPS - TLS/SSL ile trafiği şifreleyin
OpenSSH - 22 numaralı bağlantı noktası üzerinden uzak sunucu bağlantısı
Port 80'e erişimi etkinleştirerek başlayın:
Güvenlik duvarına bir uygulama ekleme durumunu şu şekilde kontrol edebilirsiniz
Kuralların bir sonucu olarak Nginx HTTP ile bir satır görebiliriz – Allow – Anywhere.
Web sunucusunu kontrol etme
Paket kurulduktan sonra, sistem yardımcı programı otomatik olarak başlatır, Nginx'i çalıştırmak için otomatik başlatmaya eklemelisiniz, böylece sistem yeniden başlatıldığında web sunucumuz otomatik olarak başlayacaktır.
Yardımcı programın durumu şu komut kullanılarak kontrol edilebilir:
Sonuçlardan web sunucusunun başarıyla başlatıldığını kontrol edebiliriz. Daha sonra Nginx'in ana sistemimizde mevcut olup olmadığını kontrol etmemiz gerekiyor. Bir tarayıcı açın ve arama kutusuna sunucu adresini girin. Sunucunun dış adresini bulmak için aşağıdaki komutu çalıştırın:
Bu size adres çubuğuna girmeniz gereken adresi verecektir.
Sayfaya gittiğinizde aşağıdaki sonucu alacaksınız.
Bu noktada Nginx'i başarıyla kurduk ve yapılandırdık. Ayrıca Web sunucusuna harici bir ana bilgisayardan erişimi de yapılandırdık.
Nginx sürecini yönetme
Nginx süreci systemctl ile başlayan birkaç komut tarafından kontrol edilir, # işareti yorum anlamına gelir ve kabuk tarafından işlenmez:
reload nginx # bir yapılandırma değişikliği durumunda bağlantıyı kesmeden yeniden başlatma gerçekleştirir
restart nginx # hizmeti durdurur ve başlatır
stop nginx # hizmeti durdurur
disable nginx # sistem otomatik başlatma bağlantısını keser
enable nginx # sistem otomatik başlatmasına ekler
Nginx işleminin kullanımını kolaylaştırmak için komutlara baktık.
Sunucu ünitesinin yapılandırılması (Önerilen)
Nginx'i kullanmak için web sunucusunun sunucu tarafı bloklarını kullanacağız. Sunucumuzda birden fazla siteyi yapılandırmak ve barındırmak için kapsülleme ayrıntılarını da kullanabilirsiniz.
serverspace.tm etki alanını yapılandırmayı düşünün, Nginx test işlemini düşünmek için bir etki alanı satın almanız gerekecektir.
Nginx, /var/www/html dizininden yapılandırmayı işleyen tek bir sunucu bloğu içerir. Bu, tek bir site için iyi çalışır, ancak aynı sunucuda birkaç site barındırılıyorsa bir web sunucusuna da müdahale edecektir. Bu durumdan kurtulmanın en iyi yolu, ek bir web sitesini ana dizinden ayırmaktır.
/var/www/ dizininde "-p" anahtarıyla yeni bir dizin oluşturun:
İzin sorunlarını önlemek için, etki alanı kök belge dizininin ve dizindeki tüm dosyaların sahibini Nginx kullanıcısı ( www-data ) olarak değiştirin:
Ardından /var/www/serverspace.tm/html içinde index.html adında bir dosya oluşturun, herhangi bir metin editörü ile değişiklik yapın ve aşağıdaki kod parçasını dosyaya yapıştırın.
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Добро пожаловать в ServerSpace.tm</title>
</head>
<body>
<h1>Успешно! Ваш домен ServerSpace.tm работает!</h1>
</body>
</html>
Dosyayı kaydedin ve çıkın.
Dosyayı bir kez daha kaydederek çıkın.
Bu dosyanın Nginx tarafından sunulabilmesi için, doğru dizini işleyecek bir yapılandırma dosyası oluşturulmalıdır. Varsayılan yapılandırma dosyasını değiştirmek yerine, /etc/nginx/sites-available/ dizininde etki alanımız için yeni bir yapılandırma dosyası oluşturun:
index.html'deki içeriğin işlenmesi için aşağıdaki yapılandırmaları ekleyin:
listen 80;
listen [::]:80;
root /var/www/serverspace.tm/html;
index index.html index.htm index.nginx-debian.html;
server_name serverspace.tm www.serverspace.tm;
location / {
try_files $uri $uri/ =404;
}
}
Ardından, web sunucusu başlatıldığında Nginx'in işlemesi için /etc/nginx/sites-enabled/ dizininde bir sembolik bağlantı dosyası oluşturun.
Sembolik bağlantı bir kısayolu andırır, ana sites-available klasöründe yapılandırma dosyasında değişiklikler yapılabilir ve değişiklikler sites-enabled dizinindeki dosyayı etkileyecektir.
Ek sunucu adlarının neden olduğu hash sorununu önlemek için /etc/nginx/nginx.conf dosyasındaki server_names_hash_buckets_size 64 satırının yorumunu kaldırın:
...
server_names_hash_buckets_size 64;
...
}
...
Dosyayı kaydedin ve çıkın.
Yapılandırmanın doğru olup olmadığını kontrol edin:
Sonuç hatasızsa, Nginx işlemini yeniden başlatın ve tarayıcıya girin:
Aşağıdaki sonucu elde ederiz.
Sonuçlar
Bu talimatlarda şunları inceledik:
- Nginx paketi yükleniyor;
- ufw yardımcı programını kullanarak güvenlik duvarını yapılandırın;
- Alan adımızı Nginx web sunucusu ile test ediyoruz.