Tanım
Nginx (“engine-x” okunur), olay tabanlı mimarisiyle çok sayıda eşzamanlı bağlantıyı düşük bellekle işleyen açık kaynaklı web sunucusu, ters vekil sunucu (reverse proxy), yük dengeleyici ve HTTP önbelleğidir. Statik dosyaları doğrudan sunar, PHP gibi dinamik içerikleri PHP-FPM’e ya da uygulama sunucularına iletir.
Nginx nasıl yapılandırılır?
Nginx, her site için bir server bloğu içeren metin dosyalarıyla yapılandırılır; Ubuntu’da bu dosyalar genellikle /etc/nginx/sites-available/ altında tutulur. Bir PHP sitesi için temel blok:
server {
listen 80;
server_name ornek.com www.ornek.com;
root /var/www/ornek/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
}Değişiklikten sonra sudo nginx -t ile sözdizimi denetlenir, sudo systemctl reload nginx ile yeniden yüklenir. Kurulum adımları Ubuntu Nginx kurulumu rehberinde yer alır.
Nginx ile Apache arasındaki fark nedir?
Nginx olay tabanlı, Apache ise modüler ve işlem/iş parçacığı tabanlı bir mimariye sahiptir. Nginx statik dosya sunmada ve çok sayıda açık bağlantıyı yönetmede verimlidir; Apache ise .htaccess ile dizin bazında yapılandırmaya izin verir. Nginx .htaccess dosyalarını okumaz; yönlendirme ve yeniden yazma kuralları sunucu yapılandırmasına yazılmalıdır. Pratikte iki sunucu sıkça birlikte kullanılır: Nginx önde reverse proxy olarak statik dosyaları ve TLS’i karşılar, dinamik istekleri arkadaki Apache’ye ya da PHP-FPM’e iletir. Kendi VPS sunucunuzda PHP uygulaması çalıştırmak için LEMP stack kurulumu rehberinden başlayabilirsiniz.