Bir NginX Web Sunucusu Kurulumu

Bu noktada, bir alan adımız ve bir sunucumuz olmalı ve DNS kayıtlarıyla alan adı sunucunun IP adresine yönlendirilmelidir. Önceki makalelerde söylediğim gibi, vereceğim talimatlar Debian için olacak. Bu makalede, diğer dağıtımlar biraz farklı çalışabilir.

Sunucuya Giriş

İlk olarak, web sunucusunu kurabileceğimiz bir komut istemine erişmek için VPS'imize giriş yapmak istiyoruz. MacOS veya GNU/Linux kullanıyorsanız ve terminal açmayı biliyorsanız, bu adımları takip edebilirsiniz. Windows'ta da PuTTY veya Windows Subsystem for Linux kullanabilirsiniz.

Şimdi Vultr'ın sitesinde, VPS'nizi tıklayın ve sunucunuzun şifresini gösteren bir alan göreceksiniz.

Şifrenizi bulun

Şimdi bir terminal açın ve şu komutu yazın:

ssh root@example.org

Bu komut, sunucunuza giriş yapmayı deneyecektir. Şifrenizi girmenizi isteyecektir ve Vultr'ın sitesinden şifreyi kopyalayarak veya yazarak girebilirsiniz.

Eğer burada bir hata alırsanız, DNS ayarlarını doğru yapmamış olabilirsiniz. Bunları tekrar kontrol edin. Ayrıca example.org yerine IP adresinizi de kullanabilirsiniz, ancak DNS ayarlarınızı yakında düzeltmek isteyeceksiniz.

Web Sunucusunu Kurmak: Nginx

Eğer program hata vermeden çalışırsa, ssh şimdi sizi sunucunuza giriş yaptı. Şimdi şu komutları çalıştırarak başlayalım.

apt update
apt upgrade
apt install nginx

İlk komut güncellenebilecek paketleri kontrol eder ve ikinci komut tüm güncellemeleri yükler.

Üçüncü komut nginx'i (Engine-X olarak okunur), kullanacağımız web sunucusunu ve bazı diğer programları yükler.

Nginx Yapılandırma Dosyamız

nginx web sunucunuzdur. Küçük bir web sitesi veya sayfa oluşturup VPS'inize koyabilir ve ardından nginx'e nerede olduğunu ve internette nasıl barındırılacağını söyleyebilirsiniz. Bu basit. Hadi yapalım.

nginx yapılandırma dosyaları /etc/nginx/ dizinindedir. Bu dizinde (Debian ve benzeri işletim sistemlerinde) iki ana alt dizin bulunur: /etc/nginx/sites-available ve /etc/nginx/sites-enabled. İsimleri açıklayıcıdır. Fikir, sites-available dizininde bir site yapılandırma dosyası oluşturup, hazır olduğunda sites-enabled dizininde ona bir bağlantı/kısayol yaparak etkinleştirmektir.

Öncelikle, web sitemizin ayarlarını oluşturacağız. Gereken değişikliklerle birlikte kopyalayıp yapıştırabilirsiniz, ancak satırların ne yaptığını da açıklayacağım.

/etc/nginx/sites-available dizininde bir dosya oluşturun:

nano /etc/nginx/sites-available/websitem

Not: "nano" bir komut satırı metin düzenleyicisidir. Bu dosyayı oluşturup düzenleyebileceksiniz. Kaydederek bu dosya görünecektir. Dosyayı websitem olarak adlandırıyorum, ancak istediğiniz gibi adlandırabilirsiniz.

Dosyaya şu içeriği ekleyeceğim. Bu içerik bu şekilde sitenizi ne olarak adlandırmak istediğinize bağlı olarak farklı olacaktır.

server {
        listen 80 ;
        listen [::]:80 ;
        server_name example.org ;
        root /var/www/websitem ;
        index index.html index.htm index.nginx-debian.html ;
        location / {
                try_files $uri $uri/ =404 ;
        }
}

Bu Ayarların Açıklaması

listen satırları nginx'e hem IPv4 hem de IPv6 bağlantılarını dinlemesini söyler.

server_name aradığımız web sitesidir. Buraya karsi-atak.com.tr koyarak, bu sunucuya bağlanan ve bu adresi arayan herkes bu bloktaki içeriğe yönlendirilecektir.

root web sitesi dosyalarımızı koyacağımız dizini belirtir. Teorik olarak bu herhangi bir yer olabilir, ancak bunları /var/www/ içinde tutmak gelenekseldir. O dizini istediğiniz gibi adlandırın.

index "varsayılan" dosyanın ne olduğunu belirler; normalde bir web sitesine gittiğinizde, örneğin karsi-atak.com.tr, aslında karsi-atak.com.tr/index.html adlı bir dosyaya gidiyorsunuzdur. Hepsi bu kadar. Yukarıdaki satırla birlikte bu, /var/www/karsi-atak/index.html adlı bilgisayarımızda oluşturacağımız dosyanın web sitemizin ana sayfası olacağı anlamına gelir.

Son olarak, location bloğu sunucuya dosyaları nasıl arayacağını, aksi takdirde 404 hatası vereceğini söylüyor. Konum ayarları çok güçlüdür, ancak şimdilik bunlara ihtiyacımız yok.

Site İçin Dizin ve İndeks Oluşturun

Daha sonra "gerçek" bir web sitesi yapmaya başlayacağız, ancak alan adını aradığında görünecek küçük bir sayfa oluşturalım.

mkdir /var/www/websitem

Şimdi bu dizinin içinde görünecek bir indeks dosyası oluşturalım:

nano /var/www/websitem/index.html

Şu temel içeriği ekleyeceğim, ancak istediğinizi ekleyebilirsiniz. Bu web sitenizde görünecek.

<!DOCTYPE html>
<html lang="tr">
<meta charset="UTF-8">
<h1>Web sitem!</h1>
<p>Bu benim web sitem. Uğradığınız için teşekkürler!</p>
<p>Artık web sitem yayında!</p>

Siteyi Etkinleştir

Bu dosyayı kaydettikten sonra, sites-enabled dizininde ona bir bağlantı yaparak etkinleştirebiliriz:

ln -s /etc/nginx/sites-available/websitem /etc/nginx/sites-enabled

Şimdi sadece nginx servisini yeni yapılandırmayı uygulamak için reload veya restart yapabiliriz:

systemctl reload nginx

Güvenlik Duvarı

Vultr ve bazı diğer VPS'ler otomatik olarak bir güvenlik duvarı programı olan ufw'yu kurar ve etkinleştirir. Bu program varsayılan olarak hemen her şeyi engeller, bu yüzden bunu değiştirmemiz gerekir. Eğer ufw yüklü değilse, bu bölümü atlayabilirsiniz.

En azından 80 ve 443 numaralı portları aşağıdaki gibi açmalıyız:

ufw allow 80
ufw allow 443

80 numaralı port kanonik web sunucusu portudur, 443 ise şifreli bağlantılar için kullanılan porttur. Bir sonraki sayfada buna kesinlikle ihtiyacımız olacak.

Nginx Güvenlik İpucu

Varsayılan olarak, Nginx ve diğer çoğu web sunucusu hata sayfalarında sürüm numaralarını otomatik olarak gösterir. Bu durumun gerçekleşmesini engellemek iyi bir fikirdir, çünkü sunucu yazılımınız için bir açık ortaya çıkarsa, biri bunu kötüye kullanabilir. Ana Nginx yapılandırma dosyasını /etc/nginx/nginx.conf açın ve # server_tokens off; satırını bulun. Bu satırı uncomment edin (yani başındaki # işaretini silin) ve Nginx'i yeniden yükleyin.

En son güvenlik düzeltmelerini almak için sunucu yazılımınızı güncel tutmayı unutmayın!

Artık Çalışan Bir Web Sitemiz Var!

Bu noktada tarayıcınıza web sitenizi yazabilirsiniz ve bu web sayfası görünecektir!

Web sayfası göründüğü gibi.

"Güvenli değil" bildirimi dikkat çekici. Bir sonraki kısa adım, web sitenize şifreli bağlantıları güvence altına almaktır.

Sonraki: Certbot ve HTTPS
Veya Önceki: Alan Adınızı ve Sunucunuzu DNS Kayıtları ile Bağlayın