07.06.2023

Nginx'in yüklenmesi ve yapılandırılması

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:

İş 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 update
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:

ufw app list

Daha sonra kurallara dahil edeceğimiz listede aşağıdaki satırlar bulunmalıdır:

Nginx Full - 80 (HTTP - normaldir ve trafik şifrelenmez) ve 443 (HTTPS - TLS/SSL kullanarak trafiği şifreler) bağlantı noktalarından sorumludur
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:

ufw allow 'Nginx HTTP'

Güvenlik duvarına bir uygulama ekleme durumunu şu şekilde kontrol edebilirsiniz

ufw status

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:

service nginx status

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:

curl 2ip.ru

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:

start nginx # hi̇zmet başlatma
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:

mkdir -p /var/www/serverspace.tm/html

İ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:

sudo chown -R www-data: /var/www/serverspace.tm

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.

<!doctype html>
<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:

vim /etc/nginx/sites-available/serverspace.tm

index.html'deki içeriğin işlenmesi için aşağıdaki yapılandırmaları ekleyin:

server {
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.

ln -s /etc/nginx/sites-available/serverspace.tm /etc/nginx/sites-enabled

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:

vim /etc/nginx/nginx.conf
http {
...
server_names_hash_buckets_size 64;
...
}
...

Dosyayı kaydedin ve çıkın.

Yapılandırmanın doğru olup olmadığını kontrol edin:

nginx -t

Sonuç hatasızsa, Nginx işlemini yeniden başlatın ve tarayıcıya girin:

http://serverspace.tm

Aşağıdaki sonucu elde ederiz.

Başarılı! ServerSpace.tm alan adınız hazır ve çalışıyor!

Sonuçlar

Bu talimatlarda şunları inceledik: