"Enter"a basıp içeriğe geçin

Varsayılan NGINX Yapılandırmasını Anlama

Last updated on 10 Eylül 2020

NGINX ile çalışmak tamamen yapılandırmayla ilgilidir, nasıl çalıştığını görmek için varsayılan NGINX yapılandırmasının ne olduğuna göz atalım

Komutlarınızı root kullanıcısı ile çalıştırmayı unutmayın.

Varsayılan NGINX Yapılandırması

NGINX’in varsayılan dizin sayfasının sunulması, paylaşılması için herhangi bir yapılandırma ayarlamamıza gerek yoktur. Bunun nedeni, NGINX’in /etc/nginx/nginx.conf adresinde bulunabilen varsayılan bir yapılandırma ile gelmesidir. Yapacağımız işlemlerin çoğu sudo gerektirecektir, bu yüzden başlamadan önce root kullanıcı olmaya geçelim:

$ sudo su
[root] $ cd /etc/nginx

Varsayılan yapılandırma dosyasında ne olduğuna bir göz atalım:

/etc/nginx/nginx.conf

user nginx;
worker_processes 1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;


log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log  /var/log/nginx/access.log  main;

sendfile        on;
#tcp_nopush     on;

keepalive_timeout  65;

#gzip  on;

include /etc/nginx/conf.d/*.conf;

}

Neler olduğunu anlamak için bu bölümü bölüm bölüm açalım. Dosyanın ilk birkaç satırı herhangi bir belirli bağlamın dışında bulunur:

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
user : çalışan işlemlerin hangi kullanıcı altında çalışması gerektiğini belirtir.
worker_processes : kullanılacak çalışan işlemlerin sayısını belirtmemize izin verir.
error_log : dosyayı hataları günlüğe kaydedecek ve hangi ileti düzeylerinin günlüğe kaydedileceğini ayarlar.
pid : ana işlemin PID'sini depolayan dosyaları tanımlar.

Sonraki bölüm, events adı verilen ilk “context”.

events {
    worker_connections  1024;
}

NGINX’teki bir bağlam, parantez ({and}) kullanılarak ifade edilir ve belirli yönergeler yalnızca çok özel bağlam türlerinde çalışır. Olaylar bağlamı, bir çalışan işlemin bağlantıları nasıl ele alması gerektiğini belirlememize izin verir. Bu durumda, worker_connections, tek bir çalışanın bir seferde açabileceği maksimum bağlantı sayısını belirtir.

 http 

Varsayılan /etc/nginx/nginx.conf dosyasının geri kalanı tek bir http bağlamıdır. İşte tüm bölüm:

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log  /var/log/nginx/access.log  main;

sendfile        on;
#tcp_nopush     on;

keepalive_timeout  65;

#gzip  on;

include /etc/nginx/conf.d/*.conf;

}

Gördüğümüz ilk yönerge, yapılandırmalarımızı farklı dosyalara ayırmamızı ve ihtiyaç duyduğumuz yere yüklememizi sağlayan include dir. mime.types dosyası, sunucunun oluşturabileceği çeşitli dosyalar için kullanılması gereken içerik dönüş türlerini tanımlar. Default_type yönergesi, içerik türler dosyasında tanımlanmamışsa kullanılacak içerik türünü belirtir. Sonraki iki yönerge tamamen günlük kaydı ile ilgilidir. Log_format direktifine baktığımızda, dolar işareti ($) ile başlayan çok sayıda token görürüz. Bu belirteçler, bir istek işlenirken kullanılabilen değişkenlerdir ve bu yönerge, istek bilgilerini günlüğe kaydetmek için hangisinin (ve hangi konumda) kullanılması gerektiğini tanımlar. access_log, istek bilgilerinin günlüğe kaydedileceği dosyayı tanımlar.

Sonraki yönerge olan sendfile biraz karmaşıktır, ancak içeriği iletirken sendfile () sistem çağrısının kullanılıp kullanılmayacağını belirtir. keepalive_timeout, yeni bir istemci için bağlantı açılmadan önce bir istemcinin TCP bağlantısını ne kadar süreyle tutacağını belirler. Son olarak, include yönergesi, /etc/nginx/conf.d/ dizinindeki tüm .conf dosyalarını yüklemek için son bir kez kullanılır.

user directive
worker_processes directive
error_log directive
pid directive
events directive
worker_connections directive
include directive
default_type directive
http directive
log_format directive
sendfile directive
access_log directive
keepalive_timeout directive

Başka yazımızda görüşmek üzere,

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.