Nginx temel konfigürasyonu nasıl yapılır? (Dinleme portu, sunucu bloğu, kök dizin)

Nginx Nedir?

Nginx, yüksek performanslı bir web sunucusu ve ters proxy sunucusudur. Yüksek ölçeklenebilirlik ve düşük bellek kullanımı sayesinde, statik içerik sunma, dengeleyici görevleri yapma ve çeşitli protokolleri destekleme konularında popüler bir seçimdir. Nginx’in yapılandırması, kullanıcının ihtiyaçlarına göre özelleştirilebilen bir dizi direktiften oluşur.

Nginx Kurulumu

Nginx’in temel konfigürasyonu yapılmadan önce, sistemde Nginx’in kurulmuş olması gerekmektedir. Çoğu Linux dağıtımında, Nginx paket yöneticisi kullanılarak kolayca kurulabilir. Örneğin, Debian tabanlı sistemlerde aşağıdaki komut kullanılabilir:

“`
sudo apt update
sudo apt install nginx
“`

Kurulumdan sonra, Nginx servisi başlatılabilir:

“`
sudo systemctl start nginx
“`

Nginx çalışıp çalışmadığını kontrol etmek için tarayıcıda `http://localhost` adresine gidilmesi yeterlidir.

Yapılandırma Dosyası

Nginx’in yapılandırma dosyası genellikle `/etc/nginx/nginx.conf` yolunda yer alır. Bunun yanında, sunucu blokları genellikle `/etc/nginx/sites-available/` ve `/etc/nginx/sites-enabled/` dizinlerinde yer alır. Bu dizinlerde oluşturulan konfigürasyon dosyaları, sitenin ayarlarını belirler.

Dinleme Portu

Nginx’in dinleyeceği port, konfigürasyon dosyasında `listen` direktifi ile tanımlanır. Varsayılan olarak, yapılandırma dosyasında 80 numaralı port kullanılmaktadır. Aşağıda, Nginx’in 80 ve 443 numaralı portlarda nasıl dinleyeceği gösterilmektedir:

“`
server {
listen 80;
server_name example.com;
}
“`

Eğer HTTPS desteği eklenmek isteniyorsa, 443 numaralı port da dinlenmelidir. Bu durumda SSL sertifikası gerekmektedir:

“`
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
}
“`

Sunucu Bloğu

Nginx web sunucusunda her bir site veya alan adı için bir sunucu bloğu oluşturulur. Sunucu bloğu, `server` direktifi ile tanımlanır. Temel bir sunucu bloğu şu şekilde oluşturulabilir:

“`
server {
listen 80;
server_name example.com www.example.com;

location / {
root /var/www/example.com/html;
index index.html index.htm;
}
}
“`

Burada `server_name` direktifi, sunucuya gelen isteklerin hangi alan adları üzerinden alınacağını belirtir. `location` direktifi ise isteklerin nasıl işleneceğini belirler. `root` ifadesi, sunucunun kök dizinini tanımlar; yani, statik dosyaların bulunduğu dizini belirtir.

Kök Dizin

Kök dizin, web sunucusunun statik içerik dosyalarını barındırdığı yerdir. Genel olarak, bu dizin `document root` olarak adlandırılır ve ilgili `location` bloklarında tanımlanır. Aşağıdaki örnekte kök dizin ve varsayılan dosya ayarları gösterilmektedir:

“`
location / {
root /var/www/example.com/html;
index index.html index.htm index.php;
}
“`

Burada `index` direktifi, istek yapıldığında sunucunun hangi dosyayı sunacağını belirler. Özellikle, `index.php` gibi dinamik içeriklerin de sunulması amaçlanıyorsa, Nginx’in PHP-FPM ile entegre çalışması gerekebilir.

PHP Desteği

Eğer dinamik içerik sunulacaksa, Nginx’in PHP desteği için `php-fpm` kullanılması önerilmektedir. Bunun için ilgili `location` bloğuna PHP dosyalarının işlenmesi için yapılandırma eklenir:

“`
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
“`

Bu yapılandırma, PHP dosyalarının nasıl yorumlanacağını ve işleneceğini belirtir.

Değişikliklerin Uygulanması

Konfigürasyon değişiklikleri yapıldıktan sonra, Nginx sunucusunun yeniden yüklenmesi gerekir. Bu işlem hataların kontrol edilmesi ve yapılandırmanın güncellenmesi açısından önemlidir. Aşağıdaki komut ile Nginx yeniden yüklenebilir:

“`
sudo systemctl reload nginx
“`

Yapılandırma dosyasında hata olup olmadığını kontrol etmek için ise:

“`
sudo nginx -t
“`

komutu kullanılmalıdır. Bu komut, konfigürasyon dosyasında herhangi bir hata olup olmadığını bildirir.

Güvenlik Notları

Nginx yapılandırmalarında güvenlik açığına neden olabilecek direktiflerin dikkatlice ayarlanması önemlidir. Örneğin, sunucu yanıt başlıkları ve izinler üzerine uygun önlemler alınması, potansiyel tehditleri azaltmak için gereklidir. Ayrıca, HTTPS kullanımının zorunlu hale getirilmesi, verilerin güvenliği açısından faydalıdır.

Nginx’in temel konfigürasyonu, dinleme portları, sunucu blokları, kök dizin ve gerekirse dinamik içerik desteği ile yapılandırma süreci tamamlanır. Bu temel yapılandırmalar, ihtiyaçlara göre genişletilebilir ve özelleştirilebilir.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

SON İÇERİKLER

İLGİNİZİ ÇEKEBİLİR