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
directiveworker_processes
directiveerror_log
directivepid
directiveevents
directiveworker_connections
directiveinclude
directivedefault_type
directivehttp
directivelog_format
directivesendfile
directiveaccess_log
directivekeepalive_timeout
directive
Başka yazımızda görüşmek üzere,