{"id":39292,"date":"2026-02-18T12:24:20","date_gmt":"2026-02-18T09:24:20","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/"},"modified":"2026-02-18T12:24:20","modified_gmt":"2026-02-18T09:24:20","slug":"nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/","title":{"rendered":"Nginx Nedir ve Neden Ubuntu 16.04 \u00dczerine Kurmal\u0131s\u0131n\u0131z?"},"content":{"rendered":"<p><title>Ubuntu 16.04 \u00dczerine Nginx Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber<\/title><br \/>\n<body><\/p>\n<p>Web sunucusu se\u00e7imi, herhangi bir web projesinin temel ta\u015flar\u0131ndan biridir. Performans, g\u00fcvenlik ve \u00f6l\u00e7eklenebilirlik, do\u011fru se\u00e7imi yaparken g\u00f6z \u00f6n\u00fcnde bulundurman\u0131z gereken kritik fakt\u00f6rlerdir. Ubuntu 16.04 gibi istikrarl\u0131 bir i\u015fletim sistemi \u00fczerinde Nginx kurmak, bu hedeflere ula\u015fman\u0131z i\u00e7in g\u00fc\u00e7l\u00fc ve verimli bir yol sunar. Bu rehberde, Nginx&#8217;i s\u0131f\u0131rdan kurmay\u0131, temel yap\u0131land\u0131rmalar\u0131 yapmay\u0131 ve sunucunuzu g\u00fcvenli ve y\u00fcksek performansl\u0131 hale getirmek i\u00e7in ipu\u00e7lar\u0131n\u0131 ke\u015ffedeceksiniz.<\/p>\n<h2>Nginx Nedir ve Neden Ubuntu 16.04 \u00dczerine Kurmal\u0131s\u0131n\u0131z?<\/h2>\n<p>Dijital d\u00fcnyada var olmak isteyen her i\u015fletme veya bireysel geli\u015ftirici i\u00e7in web sunucusu, internet \u00fczerindeki kap\u0131n\u0131zd\u0131r. Bu kap\u0131y\u0131 g\u00fc\u00e7l\u00fc, h\u0131zl\u0131 ve g\u00fcvenilir k\u0131lmak ise Nginx gibi modern bir \u00e7\u00f6z\u00fcmle m\u00fcmk\u00fcnd\u00fcr. Peki, Nginx tam olarak nedir ve neden \u00f6zellikle Ubuntu 16.04 gibi daha eski, ancak hala yayg\u0131n olarak kullan\u0131lan bir i\u015fletim sistemi \u00fczerinde tercih edilmelidir?<\/p>\n<p>Nginx (Engine-X olarak telaffuz edilir), Igor Sysoev taraf\u0131ndan geli\u015ftirilen, a\u00e7\u0131k kaynakl\u0131, y\u00fcksek performansl\u0131 bir HTTP ve ters proxy sunucusu, bir e-posta proxy sunucusu ve genel bir TCP\/UDP proxy sunucusudur. Geleneksel web sunucular\u0131n\u0131n aksine, Nginx olay tabanl\u0131 (event-driven) ve asenkron mimarisi sayesinde binlerce e\u015fzamanl\u0131 ba\u011flant\u0131y\u0131 d\u00fc\u015f\u00fck bellek kullan\u0131m\u0131yla i\u015fleyebilir. Bu \u00f6zelli\u011fi, onu \u00f6zellikle y\u00fcksek trafikli web siteleri ve uygulamalar i\u00e7in ideal bir se\u00e7im haline getirir. Statik i\u00e7erik sunumunda ola\u011fan\u00fcst\u00fc performans g\u00f6sterirken, dinamik i\u00e7erikler i\u00e7in de ters proxy olarak PHP-FPM, Node.js veya Python gibi uygulama sunucular\u0131yla sorunsuz bir \u015fekilde entegre olur. Ayr\u0131ca, y\u00fck dengeleme (load balancing) yetenekleri sayesinde trafi\u011fi birden fazla sunucuya da\u011f\u0131tarak uygulaman\u0131z\u0131n \u00f6l\u00e7eklenebilirli\u011fini ve s\u00fcreklili\u011fini art\u0131r\u0131r. G\u00fcvenlik ve kaynak verimlili\u011fi konular\u0131nda da olduk\u00e7a iddial\u0131d\u0131r, bu da onu modern web altyap\u0131lar\u0131n\u0131n vazge\u00e7ilmez bir par\u00e7as\u0131 yapar.<\/p>\n<p>Ubuntu 16.04 LTS (Xenial Xerus) ise, Nisan 2016&#8217;da piyasaya s\u00fcr\u00fclen ve uzun s\u00fcreli destek (Long Term Support) sa\u011flayan bir Linux da\u011f\u0131t\u0131m\u0131d\u0131r. Her ne kadar daha yeni Ubuntu s\u00fcr\u00fcmleri mevcut olsa da, bir\u00e7ok eski sistem, \u00f6zellikle kurumsal ortamlarda veya belirli yaz\u0131l\u0131m ba\u011f\u0131ml\u0131l\u0131klar\u0131 nedeniyle hala Ubuntu 16.04 kullanmaktad\u0131r. LTS s\u00fcr\u00fcmleri, genellikle be\u015f y\u0131l boyunca g\u00fcvenlik g\u00fcncellemeleri ve hata d\u00fczeltmeleri alarak y\u00fcksek d\u00fczeyde kararl\u0131l\u0131k ve g\u00fcvenilirlik sunar. Bu durum, sunucu ortamlar\u0131nda kritik \u00f6neme sahiptir \u00e7\u00fcnk\u00fc sistem y\u00f6neticileri, s\u0131k s\u0131k s\u00fcr\u00fcm y\u00fckseltme zahmetine girmeden uzun vadeli bir \u00e7\u00f6z\u00fcm ararlar. Ubuntu 16.04&#8217;\u00fcn sa\u011flam temeli ve Nginx&#8217;in performans odakl\u0131 mimarisi bir araya geldi\u011finde, eski donan\u0131mlarda bile modern web uygulamalar\u0131n\u0131 verimli bir \u015fekilde bar\u0131nd\u0131rmak i\u00e7in g\u00fc\u00e7l\u00fc bir kombinasyon olu\u015fturur. Bu kombinasyon, \u00f6zellikle kaynaklar\u0131 s\u0131n\u0131rl\u0131 olan ancak y\u00fcksek performans bekleyen projeler i\u00e7in bi\u00e7ilmi\u015f kaftand\u0131r. \u00d6rne\u011fin, eski bir sunucuda \u00e7al\u0131\u015fan ancak ani trafik art\u0131\u015flar\u0131na haz\u0131rl\u0131kl\u0131 olmas\u0131 gereken bir e-ticaret sitesi veya bir blog platformu i\u00e7in Ubuntu 16.04 ve Nginx ikilisi, maliyet etkin ve g\u00fcvenilir bir \u00e7\u00f6z\u00fcm sunabilir. Nginx&#8217;in d\u00fc\u015f\u00fck kaynak t\u00fcketimi, Ubuntu 16.04&#8217;\u00fcn kararl\u0131l\u0131\u011f\u0131 ile birle\u015fti\u011finde, hem b\u00fct\u00e7e dostu hem de performansl\u0131 bir altyap\u0131 olu\u015fturman\u0131n anahtar\u0131n\u0131 sunar.<\/p>\n<h2>Nginx Kurulumuna Ba\u015flamadan \u00d6nce Gerekli Haz\u0131rl\u0131klar Nelerdir?<\/h2>\n<p>Herhangi bir yaz\u0131l\u0131m kurulumuna ba\u015flamadan \u00f6nce, sisteminizin do\u011fru \u015fekilde haz\u0131rland\u0131\u011f\u0131ndan emin olmak, sorunsuz bir deneyim ve g\u00fcvenli bir \u00e7al\u0131\u015fma ortam\u0131 i\u00e7in hayati \u00f6nem ta\u015f\u0131r. Nginx kurulumu da bu kural\u0131n bir istisnas\u0131 de\u011fildir. Ubuntu 16.04 sunucunuzda Nginx&#8217;i devreye almadan \u00f6nce yapman\u0131z gereken baz\u0131 temel haz\u0131rl\u0131k ad\u0131mlar\u0131 bulunmaktad\u0131r. Bu ad\u0131mlar, hem sisteminizin g\u00fcncel kalmas\u0131n\u0131 sa\u011flar hem de olas\u0131 g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 minimize eder.<\/p>\n<p>\u0130lk ve en \u00f6nemli ad\u0131m, sisteminizin paket listesini g\u00fcncellemek ve mevcut paketleri y\u00fckseltmektir. Bu i\u015flem, hem yeni yaz\u0131l\u0131m paketlerine eri\u015fmenizi sa\u011flar hem de kurulu yaz\u0131l\u0131mlardaki g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapat\u0131r. Bir terminal penceresi a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutlar\u0131 s\u0131ras\u0131yla \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code>\nsudo apt update\nsudo apt upgrade -y\n<\/code><\/pre>\n<p><code>sudo apt update<\/code> komutu, yerel paket indeksini uzak depolardaki en son bilgilerle senkronize eder. Bu, sunucunuzun hangi paketlerin y\u00fckseltilebilece\u011fini ve hangi yeni paketlerin mevcut oldu\u011funu bilmesini sa\u011flar. Ard\u0131ndan, <code>sudo apt upgrade -y<\/code> komutu, mevcut t\u00fcm paketleri en son s\u00fcr\u00fcmlerine y\u00fckseltir. <code>-y<\/code> bayra\u011f\u0131, t\u00fcm sorulara otomatik olarak &#8220;evet&#8221; yan\u0131t\u0131 vererek y\u00fckseltme i\u015flemini etkile\u015fimli olmadan tamamlaman\u0131z\u0131 sa\u011flar. Bu ad\u0131m\u0131 d\u00fczenli olarak tekrarlamak, sunucunuzun g\u00fcvenli\u011fini ve performans\u0131n\u0131 korumak i\u00e7in kritik bir al\u0131\u015fkanl\u0131kt\u0131r.<\/p>\n<p>Bir sonraki \u00f6nemli haz\u0131rl\u0131k, g\u00fcvenlik duvar\u0131 (firewall) yap\u0131land\u0131rmas\u0131d\u0131r. UFW (Uncomplicated Firewall), Ubuntu&#8217;da varsay\u0131lan olarak gelen ve kullan\u0131m\u0131 kolay bir g\u00fcvenlik duvar\u0131 arac\u0131d\u0131r. Nginx&#8217;i kurduktan sonra, web sunucunuzun d\u0131\u015far\u0131dan eri\u015filebilir olmas\u0131 i\u00e7in belirli portlar\u0131 a\u00e7man\u0131z gerekecektir. HTTP i\u00e7in genellikle 80. port, HTTPS i\u00e7in ise 443. port kullan\u0131l\u0131r. Nginx kurulumundan \u00f6nce UFW&#8217;yi etkinle\u015ftirmek ve gerekli kurallar\u0131 tan\u0131mlamak, sunucunuza yetkisiz eri\u015fimi engellemenin ilk ad\u0131m\u0131d\u0131r. E\u011fer UFW etkin de\u011filse, a\u015fa\u011f\u0131daki komutlarla etkinle\u015ftirebilirsiniz:<\/p>\n<pre><code>\nsudo ufw enable\nsudo ufw allow OpenSSH\n<\/code><\/pre>\n<p><code>sudo ufw enable<\/code> komutu g\u00fcvenlik duvar\u0131n\u0131 etkinle\u015ftirir. Ancak, SSH ba\u011flant\u0131n\u0131z\u0131n kesilmemesi i\u00e7in \u00f6ncelikle <code>sudo ufw allow OpenSSH<\/code> komutu ile SSH portunu (varsay\u0131lan olarak 22) a\u00e7man\u0131z \u00f6nemlidir. Bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, Nginx&#8217;i kurduktan sonra HTTP ve HTTPS portlar\u0131n\u0131 a\u00e7mak i\u00e7in geri d\u00f6nece\u011fiz. Bu haz\u0131rl\u0131k, sunucunuzun temel g\u00fcvenlik duru\u015funu g\u00fc\u00e7lendirir ve sadece izin verilen trafi\u011fin i\u00e7eri girmesini sa\u011flar.<\/p>\n<p>Son olarak, Nginx kurulumu ve yap\u0131land\u0131rmas\u0131 i\u00e7in root ayr\u0131cal\u0131klar\u0131na sahip bir kullan\u0131c\u0131 hesab\u0131 kullanman\u0131z gerekecektir. Genellikle, Ubuntu&#8217;da kurulum yaparken <code>sudo<\/code> komutunu kullanarak ge\u00e7ici root ayr\u0131cal\u0131klar\u0131 elde edersiniz. E\u011fer \u015fu anki kullan\u0131c\u0131n\u0131z\u0131n sudo ayr\u0131cal\u0131klar\u0131 yoksa veya root kullan\u0131c\u0131s\u0131 olarak i\u015flem yap\u0131yorsan\u0131z, bu ad\u0131m\u0131 atlayabilirsiniz. Ancak, g\u00fcvenlik en iyi uygulama olarak, root kullan\u0131c\u0131s\u0131 yerine sudo ayr\u0131cal\u0131klar\u0131na sahip standart bir kullan\u0131c\u0131 kullan\u0131lmas\u0131 \u00f6nerilir. Bu, yanl\u0131\u015fl\u0131kla yap\u0131labilecek kritik hatalar\u0131 \u00f6nler. Bu haz\u0131rl\u0131klar tamamland\u0131\u011f\u0131nda, sunucunuz Nginx&#8217;i kurmaya ve yap\u0131land\u0131rmaya haz\u0131r hale gelecektir. Bu ad\u0131mlar, bir projenin temelini olu\u015fturur ve gelecekteki olas\u0131 sorunlar\u0131 minimize eder. \u00d6rne\u011fin, bir ba\u015flang\u0131\u00e7 firmas\u0131 yeni web uygulamas\u0131n\u0131 canl\u0131ya almadan \u00f6nce bu ad\u0131mlar\u0131 titizlikle takip ederek, hem g\u00fcvenli hem de kararl\u0131 bir ba\u015flang\u0131\u00e7 yapmay\u0131 hedefler. Sistemin g\u00fcncel olmas\u0131, g\u00fcvenlik duvar\u0131n\u0131n etkinle\u015ftirilmesi ve do\u011fru kullan\u0131c\u0131 ayr\u0131cal\u0131klar\u0131yla \u00e7al\u0131\u015fmak, bu t\u00fcr kritik projeler i\u00e7in vazge\u00e7ilmezdir.<\/p>\n<h2>Ubuntu 16.04 \u00dczerine Nginx Nas\u0131l Kurulur? Ad\u0131m Ad\u0131m Rehber<\/h2>\n<p>Nginx&#8217;in g\u00fc\u00e7l\u00fc performans ve esneklik \u00f6zelliklerinden faydalanmaya haz\u0131r m\u0131s\u0131n\u0131z? Bu b\u00f6l\u00fcmde, Ubuntu 16.04 sunucunuza Nginx&#8217;i ad\u0131m ad\u0131m nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve temel i\u015flevlerini nas\u0131l y\u00f6netece\u011finizi \u00f6\u011freneceksiniz. Kurulum s\u00fcreci olduk\u00e7a basittir ve Ubuntu&#8217;nun paket y\u00f6netim sistemi sayesinde h\u0131zl\u0131ca tamamlanabilir. Bu ad\u0131mlar\u0131 takip ederek, k\u0131sa s\u00fcrede bir web sunucusuna sahip olacaks\u0131n\u0131z.<\/p>\n<p>Nginx&#8217;i Ubuntu 16.04&#8217;e kurman\u0131n en kolay yolu, Ubuntu&#8217;nun varsay\u0131lan paket y\u00f6neticisi olan <code>apt<\/code>&#8216;yi kullanmakt\u0131r. Daha \u00f6nce sisteminizi g\u00fcncelledi\u011finizden ve y\u00fckseltti\u011finizden emin olun. E\u011fer yapmad\u0131ysan\u0131z, bir \u00f6nceki b\u00f6l\u00fcmdeki komutlar\u0131 tekrar \u00e7al\u0131\u015ft\u0131r\u0131n. Ard\u0131ndan, a\u015fa\u011f\u0131daki komutu kullanarak Nginx&#8217;i y\u00fckleyebilirsiniz:<\/p>\n<pre><code>\nsudo apt install nginx -y\n<\/code><\/pre>\n<p>Bu komut, Nginx paketini ve onunla birlikte gelen t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131 sunucunuza indirir ve kurar. Kurulum i\u015flemi genellikle birka\u00e7 dakika s\u00fcrer ve tamamland\u0131\u011f\u0131nda Nginx servisi otomatik olarak ba\u015flat\u0131l\u0131r. <code>-y<\/code> bayra\u011f\u0131, kurulum s\u0131ras\u0131nda \u00e7\u0131kan t\u00fcm onay sorular\u0131na otomatik olarak &#8220;evet&#8221; yan\u0131t\u0131 vermenizi sa\u011flar, b\u00f6ylece s\u00fcreci kesintisiz bir \u015fekilde ilerletebilirsiniz.<\/p>\n<p>Kurulum tamamland\u0131ktan sonra, Nginx servisinin ba\u015far\u0131l\u0131 bir \u015fekilde \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol etmek \u00f6nemlidir. Bunu yapmak i\u00e7in a\u015fa\u011f\u0131daki <code>systemctl<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code>\nsystemctl status nginx\n<\/code><\/pre>\n<p>Bu komutun \u00e7\u0131kt\u0131s\u0131nda &#8220;active (running)&#8221; ifadesini g\u00f6rmelisiniz. E\u011fer Nginx \u00e7al\u0131\u015fm\u0131yorsa veya bir hata mesaj\u0131 al\u0131rsan\u0131z, kurulum s\u0131ras\u0131nda bir sorun olu\u015fmu\u015f olabilir. B\u00f6yle bir durumda, hata mesaj\u0131n\u0131 dikkatlice inceleyerek sorunu gidermeye \u00e7al\u0131\u015fmal\u0131s\u0131n\u0131z. Genellikle, paket ba\u011f\u0131ml\u0131l\u0131klar\u0131 veya sistem kaynaklar\u0131 ile ilgili sorunlar bu t\u00fcr hatalara yol a\u00e7abilir. Nginx servisini ba\u015flatmak, durdurmak veya yeniden ba\u015flatmak i\u00e7in de benzer <code>systemctl<\/code> komutlar\u0131n\u0131 kullanabilirsiniz:<\/p>\n<pre><code>\nsudo systemctl start nginx    # Nginx servisini ba\u015flat\u0131r\nsudo systemctl stop nginx     # Nginx servisini durdurur\nsudo systemctl restart nginx  # Nginx servisini yeniden ba\u015flat\u0131r\nsudo systemctl reload nginx   # Nginx yap\u0131land\u0131rmas\u0131n\u0131 yeniden y\u00fckler (servisi durdurmadan)\n<\/code><\/pre>\n<p><code>reload<\/code> komutu, \u00f6zellikle yap\u0131land\u0131rma dosyalar\u0131nda de\u011fi\u015fiklik yapt\u0131ktan sonra Nginx&#8217;i yeniden ba\u015flatmadan yeni ayarlar\u0131 uygulaman\u0131za olanak tan\u0131r. Bu, web sitenizin kesintiye u\u011framadan g\u00fcncellemeleri almas\u0131n\u0131 sa\u011flar.<\/p>\n<p>Nginx ba\u015far\u0131yla kuruldu ve \u00e7al\u0131\u015f\u0131yor. \u015eimdi, g\u00fcvenlik duvar\u0131n\u0131z\u0131 yap\u0131land\u0131rarak Nginx&#8217;in d\u0131\u015far\u0131dan eri\u015filebilir olmas\u0131n\u0131 sa\u011flaman\u0131z gerekiyor. Daha \u00f6nce UFW&#8217;yi etkinle\u015ftirmi\u015ftik. Nginx, UFW ile entegre bir \u015fekilde \u00e7al\u0131\u015f\u0131r ve kurulum s\u0131ras\u0131nda kendi profilini ekler. Bu profiller sayesinde HTTP ve HTTPS trafi\u011fine izin vermek \u00e7ok daha kolayd\u0131r. Mevcut Nginx UFW profillerini a\u015fa\u011f\u0131daki komutla listeleyebilirsiniz:<\/p>\n<pre><code>\nsudo ufw app list\n<\/code><\/pre>\n<p>Bu komutun \u00e7\u0131kt\u0131s\u0131nda &#8220;Nginx HTTP&#8221;, &#8220;Nginx HTTPS&#8221; ve &#8220;Nginx Full&#8221; gibi se\u00e7enekleri g\u00f6rmelisiniz. &#8220;Nginx HTTP&#8221; sadece 80. portu (HTTP) a\u00e7ar, &#8220;Nginx HTTPS&#8221; sadece 443. portu (HTTPS) a\u00e7ar ve &#8220;Nginx Full&#8221; hem 80 hem de 443. portlar\u0131 a\u00e7ar. E\u011fer sadece HTTP \u00fczerinden hizmet verecekseniz, a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code>\nsudo ufw allow 'Nginx HTTP'\n<\/code><\/pre>\n<p>Daha sonra HTTPS&#8217;i de kullanmay\u0131 planl\u0131yorsan\u0131z, \u015fimdiden &#8220;Nginx Full&#8221; profilini etkinle\u015ftirebilirsiniz:<\/p>\n<pre><code>\nsudo ufw allow 'Nginx Full'\n<\/code><\/pre>\n<p>G\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131z\u0131 uygulad\u0131ktan sonra, de\u011fi\u015fikliklerin etkin oldu\u011funu do\u011frulamak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code>\nsudo ufw status\n<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da, Nginx taraf\u0131ndan kullan\u0131lan portlar\u0131n (80 ve\/veya 443) &#8220;ALLOW&#8221; durumunda oldu\u011funu g\u00f6rmelisiniz. Art\u0131k sunucunuzun IP adresini veya alan ad\u0131n\u0131z\u0131 bir web taray\u0131c\u0131s\u0131na yazarak Nginx&#8217;in varsay\u0131lan kar\u015f\u0131lama sayfas\u0131n\u0131 g\u00f6rebilirsiniz. E\u011fer bu sayfay\u0131 g\u00f6r\u00fcyorsan\u0131z, Nginx kurulumunuz ba\u015far\u0131l\u0131 bir \u015fekilde tamamlanm\u0131\u015ft\u0131r. Bu, bir geli\u015ftiricinin yeni bir proje i\u00e7in test ortam\u0131 kurarken att\u0131\u011f\u0131 ilk ad\u0131mlara benzer. Her \u015feyin d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6rmek, sonraki yap\u0131land\u0131rma ad\u0131mlar\u0131 i\u00e7in sa\u011flam bir zemin olu\u015fturur ve motivasyonu art\u0131r\u0131r.<\/p>\n<h3>Nginx Yap\u0131land\u0131rmas\u0131: Temel Ayarlar ve Sanal Hostlar Nas\u0131l Olu\u015fturulur?<\/h3>\n<p>Nginx&#8217;in kurulumunu tamamlad\u0131k ve varsay\u0131lan kar\u015f\u0131lama sayfas\u0131n\u0131 g\u00f6rebiliyoruz. Ancak ger\u00e7ek d\u00fcnya senaryolar\u0131nda, Nginx&#8217;i kendi web sitelerimizi veya uygulamalar\u0131m\u0131z\u0131 bar\u0131nd\u0131rmak i\u00e7in yap\u0131land\u0131rmam\u0131z gerekir. Bu b\u00f6l\u00fcmde, Nginx&#8217;in temel yap\u0131land\u0131rma dosyalar\u0131n\u0131, sunucu bloklar\u0131n\u0131 (server blocks) veya di\u011fer ad\u0131yla sanal hostlar\u0131 nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 ve y\u00f6netece\u011finizi detayl\u0131 bir \u015fekilde inceleyece\u011fiz. Bu ad\u0131mlar, tek bir Nginx sunucusunda birden fazla web sitesini bar\u0131nd\u0131rman\u0131n anahtar\u0131d\u0131r.<\/p>\n<p>Nginx&#8217;in ana yap\u0131land\u0131rma dosyas\u0131 <code>\/etc\/nginx\/nginx.conf<\/code> konumunda bulunur. Bu dosya, Nginx&#8217;in global ayarlar\u0131n\u0131 i\u00e7erir ve genellikle do\u011frudan d\u00fczenlenmez. Bunun yerine, Nginx, siteye \u00f6zel yap\u0131land\u0131rmalar\u0131 y\u00f6netmek i\u00e7in daha mod\u00fcler bir yakla\u015f\u0131m sunar. Bu yap\u0131land\u0131rma, genellikle <code>\/etc\/nginx\/sites-available\/<\/code> ve <code>\/etc\/nginx\/sites-enabled\/<\/code> dizinleri arac\u0131l\u0131\u011f\u0131yla yap\u0131l\u0131r. <code>sites-available<\/code> dizini, olu\u015fturdu\u011funuz t\u00fcm site yap\u0131land\u0131rma dosyalar\u0131n\u0131 i\u00e7erir, ancak bu siteler hen\u00fcz etkin de\u011fildir. Bir siteyi etkinle\u015ftirmek i\u00e7in, <code>sites-available<\/code> dizinindeki ilgili yap\u0131land\u0131rma dosyas\u0131n\u0131n <code>sites-enabled<\/code> dizinine sembolik bir ba\u011flant\u0131 (symlink) olu\u015fturulmas\u0131 gerekir. Nginx, yaln\u0131zca <code>sites-enabled<\/code> dizinindeki yap\u0131land\u0131rma dosyalar\u0131n\u0131 okur.<\/p>\n<p>Yeni bir web sitesi veya uygulama i\u00e7in bir sunucu blo\u011fu olu\u015fturmakla ba\u015flayal\u0131m. \u00d6rnek olarak, <code>example.com<\/code> ad\u0131nda bir alan ad\u0131 i\u00e7in bir yap\u0131land\u0131rma dosyas\u0131 olu\u015fturaca\u011f\u0131z. \u0130lk olarak, <code>sites-available<\/code> dizininde yeni bir dosya olu\u015fturun:<\/p>\n<pre><code>\nsudo nano \/etc\/nginx\/sites-available\/example.com\n<\/code><\/pre>\n<p>Bu komutla a\u00e7\u0131lan bo\u015f dosyaya a\u015fa\u011f\u0131daki temel Nginx sunucu blo\u011fu yap\u0131land\u0131rmas\u0131n\u0131 yap\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code>\nserver {\n    listen 80;\n    listen [::]:80;\n\n    root \/var\/www\/example.com\/html;\n    index index.html index.htm index.nginx-debian.html;\n\n    server_name example.com www.example.com;\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n}\n<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rma blo\u011funu ad\u0131m ad\u0131m a\u00e7\u0131klayal\u0131m:<\/p>\n<ul>\n<li><code>listen 80;<\/code> ve <code>listen [::]:80;<\/code>: Bu sat\u0131rlar, Nginx&#8217;in hem IPv4 (80) hem de IPv6 (<code>[::]:80<\/code>) \u00fczerinden 80. portu dinlemesini sa\u011flar. Bu, web sitenizin hem IPv4 hem de IPv6 adreslerinden eri\u015filebilir olaca\u011f\u0131 anlam\u0131na gelir.<\/li>\n<li><code>root \/var\/www\/example.com\/html;<\/code>: Bu, web sitenizin dosyalar\u0131n\u0131n bulundu\u011fu k\u00f6k dizinidir. Nginx, bu dizin alt\u0131nda belirtilen dosyalar\u0131 arayacakt\u0131r. Bu dizini hen\u00fcz olu\u015fturmad\u0131k, ancak birazdan olu\u015fturaca\u011f\u0131z.<\/li>\n<li><code>index index.html index.htm index.nginx-debian.html;<\/code>: Bir dizine eri\u015fildi\u011finde Nginx&#8217;in arayaca\u011f\u0131 varsay\u0131lan dosya adlar\u0131n\u0131 belirtir. Listedeki ilk mevcut dosya sunulur.<\/li>\n<li><code>server_name example.com www.example.com;<\/code>: Bu, Nginx&#8217;in hangi alan adlar\u0131 i\u00e7in bu sunucu blo\u011funu kullanaca\u011f\u0131n\u0131 belirler. Gelen iste\u011fin <code>Host<\/code> ba\u015fl\u0131\u011f\u0131 bu de\u011ferle e\u015fle\u015firse, bu blok i\u015flenir.<\/li>\n<li><code>location \/ { ... }<\/code>: Bu blok, gelen isteklerin nas\u0131l i\u015flenece\u011fini tan\u0131mlar. <code>try_files $uri $uri\/ =404;<\/code> ifadesi, Nginx&#8217;in \u00f6nce istenen dosyay\u0131 (<code>$uri<\/code>), ard\u0131ndan bir dizin olup olmad\u0131\u011f\u0131n\u0131 (<code>$uri\/<\/code>) kontrol etmesini ve e\u011fer hi\u00e7biri bulunamazsa 404 hatas\u0131 d\u00f6nd\u00fcrmesini sa\u011flar.<\/li>\n<\/ul>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 kaydettikten sonra (Nano&#8217;da <code>Ctrl+O<\/code>, <code>Enter<\/code>, <code>Ctrl+X<\/code>), web sitenizin k\u00f6k dizinini ve \u00f6rnek bir <code>index.html<\/code> dosyas\u0131n\u0131 olu\u015fturman\u0131z gerekir:<\/p>\n<pre><code>\nsudo mkdir -p \/var\/www\/example.com\/html\nsudo echo \"Merhaba D\u00fcnya! Bu example.com sitesidir.\" | sudo tee \/var\/www\/example.com\/html\/index.html\n<\/code><\/pre>\n<p>Ayr\u0131ca, Nginx&#8217;in bu dosyalara eri\u015febilmesi i\u00e7in do\u011fru izinleri ayarlaman\u0131z \u00f6nemlidir:<\/p>\n<pre><code>\nsudo chown -R www-data:www-data \/var\/www\/example.com\/html\nsudo chmod -R 755 \/var\/www\/example.com\/html\n<\/code><\/pre>\n<p><code>www-data<\/code> kullan\u0131c\u0131s\u0131 ve grubu, Nginx&#8217;in genellikle \u00e7al\u0131\u015ft\u0131\u011f\u0131 kullan\u0131c\u0131d\u0131r. Bu izinler, Nginx&#8217;in web dosyalar\u0131n\u0131 okumas\u0131na ve sunmas\u0131na olanak tan\u0131r.<\/p>\n<p>\u015eimdi, olu\u015fturdu\u011fumuz sunucu blo\u011funu etkinle\u015ftirmemiz gerekiyor. Bunun i\u00e7in <code>sites-available<\/code> dizinindeki dosyadan <code>sites-enabled<\/code> dizinine sembolik bir ba\u011flant\u0131 olu\u015fturaca\u011f\u0131z:<\/p>\n<pre><code>\nsudo ln -s \/etc\/nginx\/sites-available\/example.com \/etc\/nginx\/sites-enabled\/\n<\/code><\/pre>\n<p>Bu komut, Nginx&#8217;in yeni yap\u0131land\u0131rma dosyan\u0131z\u0131 tan\u0131mas\u0131n\u0131 sa\u011flar. Ayr\u0131ca, varsay\u0131lan Nginx yap\u0131land\u0131rma dosyas\u0131n\u0131 (<code>default<\/code>) devre d\u0131\u015f\u0131 b\u0131rakmak isteyebilirsiniz, b\u00f6ylece sadece kendi yap\u0131land\u0131rman\u0131z etkin olur:<\/p>\n<pre><code>\nsudo rm \/etc\/nginx\/sites-enabled\/default\n<\/code><\/pre>\n<p>Herhangi bir yap\u0131land\u0131rma de\u011fi\u015fikli\u011finden sonra, Nginx yap\u0131land\u0131rman\u0131zda s\u00f6zdizimi hatas\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek her zaman iyi bir uygulamad\u0131r:<\/p>\n<pre><code>\nsudo nginx -t\n<\/code><\/pre>\n<p>E\u011fer her \u015fey yolundaysa, &#8220;syntax is ok&#8221; ve &#8220;test is successful&#8221; mesajlar\u0131n\u0131 g\u00f6rmelisiniz. Herhangi bir hata mesaj\u0131 al\u0131rsan\u0131z, yap\u0131land\u0131rma dosyan\u0131z\u0131 dikkatlice kontrol edin ve hatalar\u0131 d\u00fczeltin. Son olarak, Nginx&#8217;i yeniden y\u00fckleyerek yeni yap\u0131land\u0131rman\u0131n etkin olmas\u0131n\u0131 sa\u011flay\u0131n:<\/p>\n<pre><code>\nsudo systemctl reload nginx\n<\/code><\/pre>\n<p>Art\u0131k taray\u0131c\u0131n\u0131zdan <code>example.com<\/code> (veya sunucunuzun IP adresini, e\u011fer bir alan ad\u0131 yap\u0131land\u0131rmad\u0131ysan\u0131z) adresine giderek &#8220;Merhaba D\u00fcnya! Bu example.com sitesidir.&#8221; mesaj\u0131n\u0131 g\u00f6rmelisiniz. Bu ad\u0131mlar, tek bir sunucu \u00fczerinde birden fazla web sitesi bar\u0131nd\u0131rmak isteyen bir web geli\u015ftiricisi i\u00e7in temel bir yetenektir. Her bir site i\u00e7in ayr\u0131 bir sunucu blo\u011fu olu\u015fturarak, kaynaklar\u0131 verimli bir \u015fekilde kullanabilir ve y\u00f6netimi kolayla\u015ft\u0131rabilirsiniz. Bu esneklik, Nginx&#8217;i k\u00fc\u00e7\u00fck projelerden b\u00fcy\u00fck \u00f6l\u00e7ekli kurumsal uygulamalara kadar her t\u00fcrl\u00fc senaryoda tercih edilen bir \u00e7\u00f6z\u00fcm haline getirir.<\/p>\n<h2>G\u00fcvenlik ve Performans \u0130pu\u00e7lar\u0131: Nginx Kurulumunuzu Nas\u0131l Optimize Edersiniz?<\/h2>\n<p>Nginx&#8217;i kurmak ve temel bir web sitesini \u00e7al\u0131\u015ft\u0131rmak harika bir ba\u015flang\u0131\u00e7t\u0131r, ancak ger\u00e7ek d\u00fcnya uygulamalar\u0131nda g\u00fcvenlik ve performans, ba\u015far\u0131 i\u00e7in kritik \u00f6neme sahiptir. Bu b\u00f6l\u00fcmde, Nginx kurulumunuzu daha g\u00fcvenli hale getirmek ve web sitenizin h\u0131z\u0131n\u0131 art\u0131rmak i\u00e7in uygulayabilece\u011finiz ileri d\u00fczey ipu\u00e7lar\u0131n\u0131 ve teknikleri ele alaca\u011f\u0131z. Bu optimizasyonlar, kullan\u0131c\u0131 deneyimini iyile\u015ftirirken sunucunuzun kaynaklar\u0131n\u0131 daha verimli kullanman\u0131za olanak tan\u0131r.<\/p>\n<h3>G\u00fcvenlik \u0130\u00e7in Temel Ad\u0131mlar: UFW ve SSL\/TLS Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Bir web sunucusunun en \u00f6nemli sorumluluklar\u0131ndan biri, sunulan i\u00e7eri\u011fin ve kullan\u0131c\u0131 verilerinin g\u00fcvenli\u011fini sa\u011flamakt\u0131r. Nginx ile g\u00fcvenli\u011fi art\u0131rmak i\u00e7in atabilece\u011finiz birka\u00e7 temel ad\u0131m bulunmaktad\u0131r.<\/p>\n<p>\u0130lk olarak, g\u00fcvenlik duvar\u0131 (UFW) kurallar\u0131n\u0131z\u0131 do\u011fru \u015fekilde yap\u0131land\u0131rd\u0131\u011f\u0131n\u0131zdan emin olun. Daha \u00f6nce Nginx&#8217;in portlar\u0131n\u0131 a\u00e7m\u0131\u015ft\u0131k. Ancak, sadece gerekli portlar\u0131n a\u00e7\u0131k kalmas\u0131 ve yetkisiz eri\u015fimlerin engellenmesi esast\u0131r. E\u011fer sadece HTTPS kullan\u0131yorsan\u0131z, HTTP (80) portunu kapatmay\u0131 d\u00fc\u015f\u00fcnebilirsiniz. G\u00fcvenlik duvar\u0131n\u0131z\u0131 kontrol edin:<\/p>\n<pre><code>\nsudo ufw status verbose\n<\/code><\/pre>\n<p>E\u011fer 80. portu kapatmak isterseniz:<\/p>\n<pre><code>\nsudo ufw deny 'Nginx HTTP'\n<\/code><\/pre>\n<p>Ancak \u00e7o\u011fu zaman, HTTP&#8217;den HTTPS&#8217;e y\u00f6nlendirme yapmak i\u00e7in 80. portun a\u00e7\u0131k kalmas\u0131 istenir. Bu, ziyaret\u00e7ilerin web sitenize g\u00fcvenli bir ba\u011flant\u0131 \u00fczerinden eri\u015fmesini sa\u011flaman\u0131n ilk ad\u0131m\u0131d\u0131r.<\/p>\n<p>Web g\u00fcvenli\u011finin en kritik bile\u015fenlerinden biri SSL\/TLS \u015fifrelemesidir. SSL\/TLS sertifikalar\u0131, sunucu ile istemci aras\u0131ndaki ileti\u015fimi \u015fifreleyerek hassas verilerin (\u015fifreler, kredi kart\u0131 bilgileri vb.) g\u00fcvenli\u011fini sa\u011flar. Let&#8217;s Encrypt gibi \u00fccretsiz ve otomatik sertifika sa\u011flayan bir hizmet, bu s\u00fcreci olduk\u00e7a kolayla\u015ft\u0131r\u0131r. Ubuntu 16.04 i\u00e7in Certbot kullanarak Let&#8217;s Encrypt sertifikas\u0131n\u0131 kurabilirsiniz. \u0130lk olarak Certbot&#8217;u y\u00fckleyin:<\/p>\n<pre><code>\nsudo apt install software-properties-common\nsudo add-apt-repository ppa:certbot\/certbot -y\nsudo apt update\nsudo apt install python-certbot-nginx -y\n<\/code><\/pre>\n<p>Ard\u0131ndan, Nginx i\u00e7in sertifika al\u0131p yap\u0131land\u0131rmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n (<code>example.com<\/code> yerine kendi alan ad\u0131n\u0131z\u0131 yaz\u0131n):<\/p>\n<pre><code>\nsudo certbot --nginx -d example.com -d www.example.com\n<\/code><\/pre>\n<p>Certbot, sertifikay\u0131 otomatik olarak alacak ve Nginx yap\u0131land\u0131rma dosyan\u0131z\u0131 HTTPS&#8217;i kullanacak \u015fekilde g\u00fcncelleyecektir. Ayr\u0131ca, HTTP isteklerini otomatik olarak HTTPS&#8217;e y\u00f6nlendirme se\u00e7ene\u011fi de sunacakt\u0131r. Bu ad\u0131m\u0131 tamamlad\u0131ktan sonra, web siteniz art\u0131k g\u00fcvenli bir HTTPS ba\u011flant\u0131s\u0131 \u00fczerinden hizmet verecektir. Bu, sadece verilerinizi korumakla kalmaz, ayn\u0131 zamanda arama motoru s\u0131ralamalar\u0131n\u0131z \u00fczerinde de olumlu bir etki yarat\u0131r.<\/p>\n<div class=\"tip\">\n  Uzman \u0130pucu: Nginx&#8217;e HSTS (HTTP Strict Transport Security) ba\u015fl\u0131\u011f\u0131 eklemek, taray\u0131c\u0131lar\u0131n sitenize her zaman HTTPS \u00fczerinden eri\u015fmesini zorlar. Bu, man-in-the-middle sald\u0131r\u0131lar\u0131n\u0131 \u00f6nlemeye yard\u0131mc\u0131 olur ve g\u00fcvenlik seviyenizi \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r.\n<\/div>\n<p>Ek g\u00fcvenlik i\u00e7in, Nginx yap\u0131land\u0131rman\u0131za baz\u0131 g\u00fcvenlik ba\u015fl\u0131klar\u0131 ekleyebilirsiniz. \u00d6rne\u011fin, <code>X-Content-Type-Options<\/code>, <code>X-Frame-Options<\/code> ve <code>X-XSS-Protection<\/code> gibi ba\u015fl\u0131klar, yayg\u0131n web sald\u0131r\u0131lar\u0131na kar\u015f\u0131 koruma sa\u011flar. Bu ba\u015fl\u0131klar\u0131 Nginx sunucu blo\u011funuza ekleyebilirsiniz:<\/p>\n<pre><code>\nserver {\n    # ... di\u011fer yap\u0131land\u0131rmalar ...\n    add_header X-Frame-Options \"SAMEORIGIN\";\n    add_header X-Content-Type-Options \"nosniff\";\n    add_header X-XSS-Protection \"1; mode=block\";\n    # ...\n}\n<\/code><\/pre>\n<h3>Performans \u0130\u00e7in \u0130pu\u00e7lar\u0131: \u00d6nbellekleme ve Gzip S\u0131k\u0131\u015ft\u0131rma<\/h3>\n<p>Web sitenizin h\u0131z\u0131, kullan\u0131c\u0131 deneyimi ve SEO a\u00e7\u0131s\u0131ndan kritik bir fakt\u00f6rd\u00fcr. Nginx, performans\u0131 art\u0131rmak i\u00e7in bir\u00e7ok yerle\u015fik \u00f6zelli\u011fe sahiptir. Bunlardan en \u00f6nemlileri \u00f6nbellekleme ve Gzip s\u0131k\u0131\u015ft\u0131rmad\u0131r.<\/p>\n<p><strong>Taray\u0131c\u0131 \u00d6nbellekleme (Browser Caching):<\/strong> Nginx, statik dosyalar\u0131n (resimler, CSS, JavaScript) taray\u0131c\u0131 taraf\u0131ndan \u00f6nbelle\u011fe al\u0131nmas\u0131n\u0131 sa\u011flayarak tekrarlanan ziyaretlerde sayfa y\u00fckleme s\u00fcrelerini \u00f6nemli \u00f6l\u00e7\u00fcde azaltabilir. Bunu yapmak i\u00e7in, Nginx yap\u0131land\u0131rma dosyan\u0131za a\u015fa\u011f\u0131daki gibi bir <code>location<\/code> blo\u011fu ekleyebilirsiniz:<\/p>\n<pre><code>\nlocation ~* \\.(jpg|jpeg|gif|png|webp|css|js|ico|woff|woff2|ttf|eot)$ {\n    expires 30d;\n    add_header Cache-Control \"public, no-transform\";\n}\n<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rma, belirli dosya t\u00fcrleri i\u00e7in taray\u0131c\u0131ya bu dosyalar\u0131 30 g\u00fcn boyunca \u00f6nbelle\u011fe almas\u0131n\u0131 s\u00f6yler. <code>Cache-Control \"public, no-transform\"<\/code> ba\u015fl\u0131\u011f\u0131, \u00f6nbelle\u011fe al\u0131nan i\u00e7eri\u011fin herhangi bir ara sunucu taraf\u0131ndan de\u011fi\u015ftirilmeden do\u011frudan istemciye sunulmas\u0131n\u0131 sa\u011flar.<\/p>\n<p><strong>Gzip S\u0131k\u0131\u015ft\u0131rma:<\/strong> Gzip, web sunucusundan istemciye g\u00f6nderilen metin tabanl\u0131 dosyalar\u0131n (HTML, CSS, JavaScript) boyutunu s\u0131k\u0131\u015ft\u0131rarak bant geni\u015fli\u011fi kullan\u0131m\u0131n\u0131 azalt\u0131r ve y\u00fckleme s\u00fcrelerini h\u0131zland\u0131r\u0131r. Nginx&#8217;te Gzip s\u0131k\u0131\u015ft\u0131rmay\u0131 etkinle\u015ftirmek i\u00e7in <code>nginx.conf<\/code> dosyan\u0131z\u0131n <code>http<\/code> blo\u011funa veya sunucu blo\u011funuza a\u015fa\u011f\u0131daki ayarlar\u0131 ekleyebilirsiniz:<\/p>\n<pre><code>\ngzip on;\ngzip_vary on;\ngzip_proxied any;\ngzip_comp_level 6;\ngzip_types text\/plain text\/css application\/json application\/javascript text\/xml application\/xml application\/xml+rss text\/javascript;\n<\/code><\/pre>\n<p>Bu ayarlar, Gzip s\u0131k\u0131\u015ft\u0131rmay\u0131 etkinle\u015ftirir, s\u0131k\u0131\u015ft\u0131rma seviyesini ayarlar (6 genellikle iyi bir denge sunar) ve hangi MIME t\u00fcrlerinin s\u0131k\u0131\u015ft\u0131r\u0131laca\u011f\u0131n\u0131 belirtir. Bu sayede, web sitenizin boyutunu ciddi oranda d\u00fc\u015f\u00fcrebilir ve ziyaret\u00e7iler i\u00e7in daha h\u0131zl\u0131 bir deneyim sunabilirsiniz.<\/p>\n<p><strong>Worker Processes Optimizasyonu:<\/strong> Nginx, gelen ba\u011flant\u0131lar\u0131 i\u015flemek i\u00e7in &#8220;worker process&#8221; ad\u0131 verilen s\u00fcre\u00e7leri kullan\u0131r. Bu s\u00fcre\u00e7lerin say\u0131s\u0131, sunucunuzun CPU \u00e7ekirdek say\u0131s\u0131na g\u00f6re optimize edilmelidir. Genellikle, sunucunuzdaki CPU \u00e7ekirde\u011fi say\u0131s\u0131 kadar worker process ayarlamak iyi bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r. Bu ayar\u0131 <code>nginx.conf<\/code> dosyan\u0131z\u0131n en \u00fcst\u00fcndeki <code>main<\/code> blo\u011funa ekleyebilirsiniz:<\/p>\n<pre><code>\nworker_processes auto; # veya CPU \u00e7ekirde\u011fi say\u0131s\u0131 (\u00f6rn: 4)\n<\/code><\/pre>\n<p><code>auto<\/code> de\u011feri, Nginx&#8217;in otomatik olarak CPU \u00e7ekirde\u011fi say\u0131s\u0131n\u0131 alg\u0131lamas\u0131n\u0131 sa\u011flar. Bu optimizasyon, sunucunuzun donan\u0131m kaynaklar\u0131n\u0131 en verimli \u015fekilde kullanmas\u0131na yard\u0131mc\u0131 olur.<\/p>\n<p><strong>Mobil Uyumluluk \u0130\u00e7in Not:<\/strong> Nginx do\u011frudan mobil uyumluluk sa\u011flamaz, ancak web sitenizin mobil uyumlu olmas\u0131, Nginx&#8217;in h\u0131zl\u0131 sunum yetenekleriyle birle\u015fti\u011finde m\u00fckemmel bir kullan\u0131c\u0131 deneyimi sunar. Web sitenizin HTML, CSS ve JavaScript kodlar\u0131n\u0131 mobil cihazlara duyarl\u0131 olacak \u015fekilde tasarlaman\u0131z gerekir. Bu genellikle CSS medya sorgular\u0131 (media queries) kullan\u0131larak yap\u0131l\u0131r. \u0130\u015fte basit bir \u00f6rnek:<\/p>\n<pre><code class=\"language-css\">\n&lt;style&gt;\n  \/* Varsay\u0131lan stil: Geni\u015f ekranlar i\u00e7in *\/\n  .container {\n    width: 960px;\n    margin: 0 auto;\n    background-color: lightblue;\n  }\n\n  \/* Mobil cihazlar i\u00e7in medya sorgusu *\/\n  @media (max-width: 768px) {\n    .container {\n      width: 100%;\n      padding: 15px;\n      background-color: lightcoral;\n    }\n  }\n&lt;\/style&gt;\n&lt;div class=\"container\"&gt;\n  &lt;p&gt;Bu i\u00e7erik, ekran boyutuna g\u00f6re farkl\u0131 g\u00f6r\u00fcnecektir.&lt;\/p&gt;\n&lt;\/div&gt;\n<\/code><\/pre>\n<p>Bu \u00f6rnek, bir web sayfas\u0131n\u0131n farkl\u0131 ekran boyutlar\u0131na nas\u0131l adapte olabilece\u011fini g\u00f6sterir. Nginx, bu optimize edilmi\u015f i\u00e7eri\u011fi h\u0131zl\u0131 bir \u015fekilde sunarak mobil kullan\u0131c\u0131lar i\u00e7in ak\u0131c\u0131 bir deneyim sa\u011flar. Bu g\u00fcvenlik ve performans optimizasyonlar\u0131n\u0131 uygulayarak, Nginx sunucunuzu hem daha g\u00fcvenli hem de daha h\u0131zl\u0131 hale getirebilirsiniz. Bu, \u00f6zellikle y\u00fcksek trafikli bir blog veya e-ticaret platformu gibi senaryolarda, ziyaret\u00e7ilerinizi memnun etmek ve sunucunuzun y\u00fck\u00fcn\u00fc azaltmak i\u00e7in hayati \u00f6neme sahiptir.<\/p>\n<h2>Nginx ile Kar\u015f\u0131la\u015f\u0131labilecek Yayg\u0131n Sorunlar ve \u00c7\u00f6z\u00fcmleri Nelerdir?<\/h2>\n<p>Nginx kurulumu ve yap\u0131land\u0131rmas\u0131 genellikle sorunsuz ilerlese de, zaman zaman \u00e7e\u015fitli problemlerle kar\u015f\u0131la\u015fmak m\u00fcmk\u00fcnd\u00fcr. Bu sorunlar\u0131 h\u0131zl\u0131ca te\u015fhis edip \u00e7\u00f6zebilmek, bir sunucu y\u00f6neticisinin en \u00f6nemli becerilerindendir. Bu b\u00f6l\u00fcmde, Nginx ile kar\u015f\u0131la\u015fabilece\u011finiz en yayg\u0131n sorunlar\u0131 ve bunlar\u0131n \u00e7\u00f6z\u00fcm yollar\u0131n\u0131 ele alaca\u011f\u0131z. Bu bilgiler, sorun giderme s\u00fcrecinizi h\u0131zland\u0131racak ve web sitenizin kesintisiz \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayacakt\u0131r.<\/p>\n<p><strong>1. Nginx Servisi Ba\u015flam\u0131yor veya Hata Veriyor:<\/strong><\/p>\n<p>Bu, kar\u015f\u0131la\u015f\u0131labilecek en temel sorunlardan biridir. Nginx servisinin ba\u015flamamas\u0131n\u0131n veya hata vermesinin birka\u00e7 nedeni olabilir. \u0130lk olarak, Nginx servisinin durumunu kontrol edin:<\/p>\n<pre><code>\nsudo systemctl status nginx\n<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da k\u0131rm\u0131z\u0131 renkte bir &#8220;failed&#8221; mesaj\u0131 g\u00f6r\u00fcyorsan\u0131z, sorun gidermeye ba\u015flamal\u0131s\u0131n\u0131z. Genellikle, hata mesaj\u0131nda sorunun k\u00f6kenine dair ipu\u00e7lar\u0131 bulunur. En yayg\u0131n nedenlerden biri yap\u0131land\u0131rma hatas\u0131d\u0131r. Nginx yap\u0131land\u0131rma dosyalar\u0131n\u0131zda bir s\u00f6zdizimi hatas\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol edin:<\/p>\n<pre><code>\nsudo nginx -t\n<\/code><\/pre>\n<p>E\u011fer bir hata varsa, Nginx size hatan\u0131n hangi dosyada ve hangi sat\u0131rda oldu\u011funu s\u00f6yleyecektir. \u00d6rne\u011fin, bir noktal\u0131 virg\u00fcl eksikli\u011fi veya yanl\u0131\u015f bir direktif ad\u0131 bu t\u00fcr hatalara yol a\u00e7abilir. Hatay\u0131 d\u00fczeltin, dosyay\u0131 kaydedin ve tekrar <code>sudo nginx -t<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n. Hata giderildikten sonra Nginx servisini yeniden ba\u015flatmay\u0131 deneyin: <code>sudo systemctl restart nginx<\/code>.<\/p>\n<p>Di\u011fer bir yayg\u0131n neden ise port \u00e7ak\u0131\u015fmas\u0131d\u0131r. Nginx varsay\u0131lan olarak 80 (HTTP) ve 443 (HTTPS) portlar\u0131n\u0131 kullan\u0131r. E\u011fer sunucunuzda ba\u015fka bir servis (\u00f6rne\u011fin Apache) bu portlar\u0131 kullan\u0131yorsa, Nginx ba\u015flayamaz. Bu durumu kontrol etmek i\u00e7in:<\/p>\n<pre><code>\nsudo netstat -tulnp | grep \":80\\|:443\"\n<\/code><\/pre>\n<p>Bu komut, 80 ve 443 portlar\u0131n\u0131 dinleyen s\u00fcre\u00e7leri g\u00f6sterecektir. E\u011fer Nginx d\u0131\u015f\u0131nda bir s\u00fcre\u00e7 g\u00f6r\u00fcyorsan\u0131z, o servisi durdurman\u0131z veya Nginx&#8217;in farkl\u0131 bir port kullanmas\u0131n\u0131 sa\u011flaman\u0131z gerekebilir.<\/p>\n<p><strong>2. &#8220;403 Forbidden&#8221; Hatas\u0131:<\/strong><\/p>\n<p>Bu hata, Nginx&#8217;in istenen dosyaya veya dizine eri\u015fim izni olmad\u0131\u011f\u0131n\u0131 g\u00f6sterir. Genellikle yanl\u0131\u015f dosya veya dizin izinlerinden kaynaklan\u0131r. Web sitenizin k\u00f6k dizini (<code>root<\/code> direktifinde belirtilen) ve i\u00e7indeki t\u00fcm dosyalar\u0131n Nginx&#8217;in \u00e7al\u0131\u015ft\u0131\u011f\u0131 kullan\u0131c\u0131 (genellikle <code>www-data<\/code>) taraf\u0131ndan okunabilir olmas\u0131 gerekir. \u0130zinleri kontrol edin ve d\u00fczeltin:<\/p>\n<pre><code>\nsudo chown -R www-data:www-data \/var\/www\/example.com\/html\nsudo chmod -R 755 \/var\/www\/example.com\/html\n<\/code><\/pre>\n<p><code>chown<\/code> komutu, dizinin ve i\u00e7eri\u011finin sahipli\u011fini <code>www-data<\/code> kullan\u0131c\u0131s\u0131na ve grubuna atar. <code>chmod<\/code> komutu ise okuma, yazma ve \u00e7al\u0131\u015ft\u0131rma izinlerini ayarlar (755, sahibi i\u00e7in tam izinler, di\u011ferleri i\u00e7in okuma ve \u00e7al\u0131\u015ft\u0131rma anlam\u0131na gelir). Ayr\u0131ca, Nginx yap\u0131land\u0131rman\u0131zda <code>autoindex on;<\/code> direktifi olmadan bir dizine eri\u015fmeye \u00e7al\u0131\u015f\u0131yorsan\u0131z da bu hatay\u0131 alabilirsiniz. E\u011fer dizin listelemesini istiyorsan\u0131z, bu direktifi eklemelisiniz. Ancak g\u00fcvenlik nedeniyle genellikle dizin listelemesi devre d\u0131\u015f\u0131 b\u0131rak\u0131l\u0131r.<\/p>\n<p><strong>3. &#8220;404 Not Found&#8221; Hatas\u0131:<\/strong><\/p>\n<p>Bu hata, Nginx&#8217;in istenen dosyay\u0131 veya kayna\u011f\u0131 bulamad\u0131\u011f\u0131 anlam\u0131na gelir. Bu durumun birka\u00e7 nedeni olabilir:<\/p>\n<ul>\n<li><strong>Yanl\u0131\u015f K\u00f6k Dizin (Root Directory):<\/strong> Nginx yap\u0131land\u0131rma dosyan\u0131zdaki <code>root<\/code> direktifinin, web sitenizin dosyalar\u0131n\u0131n fiziksel konumunu do\u011fru bir \u015fekilde i\u015faret etti\u011finden emin olun.<\/li>\n<li><strong>Dosya Yolu Hatas\u0131:<\/strong> \u0130stenen dosyan\u0131n URL&#8217;si, sunucudaki fiziksel dosya yoluyla e\u015fle\u015fmiyor olabilir. \u00d6zellikle yeniden yazma kurallar\u0131 (rewrite rules) kullan\u0131l\u0131yorsa, bu kurallar\u0131n do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun.<\/li>\n<li><strong><code>try_files<\/code> Direktifi Hatas\u0131:<\/strong> Sunucu blo\u011funuzdaki <code>location \/ { try_files $uri $uri\/ =404; }<\/code> gibi bir direktif, Nginx&#8217;in dosyalar\u0131 nas\u0131l arayaca\u011f\u0131n\u0131 belirler. E\u011fer bu direktif yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015fsa, dosyalar bulunamayabilir. Dinamik uygulamalar i\u00e7in (PHP, Node.js), <code>try_files<\/code> genellikle uygulama sunucusuna (\u00f6rn. PHP-FPM) iste\u011fi iletmek \u00fczere yap\u0131land\u0131r\u0131l\u0131r.<\/li>\n<\/ul>\n<p><strong>4. &#8220;502 Bad Gateway&#8221; veya &#8220;504 Gateway Timeout&#8221; Hatas\u0131:<\/strong><\/p>\n<p>Bu hatalar, Nginx&#8217;in bir ters proxy olarak \u00e7al\u0131\u015ft\u0131\u011f\u0131 ve arka u\u00e7 uygulama sunucusuyla (\u00f6rne\u011fin PHP-FPM, Node.js sunucusu) ileti\u015fim kurarken bir sorun ya\u015fad\u0131\u011f\u0131 anlam\u0131na gelir. Genellikle a\u015fa\u011f\u0131daki nedenlerden kaynaklan\u0131r:<\/p>\n<ul>\n<li><strong>Uygulama Sunucusu \u00c7al\u0131\u015fm\u0131yor:<\/strong> Arka u\u00e7 uygulaman\u0131z\u0131n (\u00f6rne\u011fin PHP-FPM) \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol edin. <code>sudo systemctl status php7.0-fpm<\/code> gibi bir komutla durumunu kontrol edebilirsiniz.<\/li>\n<li><strong>Uygulama Sunucusu Eri\u015filebilir De\u011fil:<\/strong> Nginx yap\u0131land\u0131rman\u0131zdaki <code>proxy_pass<\/code> direktifinin do\u011fru IP adresini ve portu i\u015faret etti\u011finden emin olun. Uygulama sunucunuzun g\u00fcvenlik duvar\u0131 taraf\u0131ndan engellenmedi\u011finden de emin olun.<\/li>\n<li><strong>Zaman A\u015f\u0131m\u0131 (Timeout):<\/strong> Uygulama sunucunuz bir iste\u011fi \u00e7ok uzun s\u00fcrede yan\u0131tl\u0131yorsa (\u00f6zellikle 504 hatas\u0131nda), Nginx zaman a\u015f\u0131m\u0131na u\u011frayabilir. Nginx&#8217;in <code>proxy_read_timeout<\/code> ve <code>proxy_connect_timeout<\/code> de\u011ferlerini art\u0131rmay\u0131 d\u00fc\u015f\u00fcnebilirsiniz, ancak bu genellikle arka u\u00e7 uygulaman\u0131zdaki performans sorunlar\u0131n\u0131n bir belirtisidir.<\/li>\n<\/ul>\n<div class=\"tip\">\n  Uzman \u0130pucu: Nginx&#8217;in hata ve eri\u015fim loglar\u0131n\u0131 d\u00fczenli olarak kontrol etmek, sorun gidermede size \u00e7ok yard\u0131mc\u0131 olacakt\u0131r. Loglar genellikle <code>\/var\/log\/nginx\/access.log<\/code> ve <code>\/var\/log\/nginx\/error.log<\/code> konumlar\u0131nda bulunur. Bu dosyalara bakarak hatan\u0131n nedenini daha net anlayabilirsiniz.\n<\/div>\n<pre><code>\nsudo tail -f \/var\/log\/nginx\/error.log\nsudo tail -f \/var\/log\/nginx\/access.log\n<\/code><\/pre>\n<p>Bu komutlar, log dosyalar\u0131n\u0131n son sat\u0131rlar\u0131n\u0131 ger\u00e7ek zamanl\u0131 olarak g\u00f6sterir, bu da bir sorunu yeniden olu\u015ftururken ne oldu\u011funu g\u00f6rmenizi sa\u011flar. Sorun giderme, sab\u0131r ve sistematik bir yakla\u015f\u0131mla \u00e7\u00f6z\u00fclebilecek bir s\u00fcre\u00e7tir. Bu yayg\u0131n sorunlar\u0131 ve \u00e7\u00f6z\u00fcmlerini bilmek, web sunucunuzun sorunsuz \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak i\u00e7in size b\u00fcy\u00fck avantaj sa\u011flayacakt\u0131r. Bir \u00f6rnek olarak, bir geli\u015ftiricinin yeni bir Node.js uygulamas\u0131n\u0131 da\u011f\u0131t\u0131rken ya\u015fad\u0131\u011f\u0131 &#8220;502 Bad Gateway&#8221; hatas\u0131, genellikle Node.js uygulamas\u0131n\u0131n d\u00fczg\u00fcn \u00e7al\u0131\u015fmamas\u0131 veya Nginx&#8217;in uygulama sunucusuna do\u011fru proxy yapamamas\u0131yla ilgilidir. Loglar\u0131 kontrol etmek, bu t\u00fcr durumlar\u0131n h\u0131zla \u00e7\u00f6z\u00fclmesini sa\u011flar.<\/p>\n<h2>Sonu\u00e7: Nginx ile Web D\u00fcnyas\u0131na G\u00fc\u00e7l\u00fc Bir Ba\u015flang\u0131\u00e7<\/h2>\n<p>Bu kapsaml\u0131 rehber boyunca, Ubuntu 16.04 i\u015fletim sistemi \u00fczerinde Nginx web sunucusunu nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, temel yap\u0131land\u0131rmalar\u0131 nas\u0131l yapaca\u011f\u0131n\u0131z\u0131 ve sunucunuzu g\u00fcvenli ve performansl\u0131 hale getirmek i\u00e7in hangi ad\u0131mlar\u0131 atman\u0131z gerekti\u011fini detayl\u0131 bir \u015fekilde \u00f6\u011frendiniz. Nginx&#8217;in olay tabanl\u0131 mimarisi ve d\u00fc\u015f\u00fck kaynak t\u00fcketimi sayesinde, y\u00fcksek trafikli web sitelerinden basit bloglara kadar her t\u00fcrl\u00fc projede g\u00fc\u00e7l\u00fc ve \u00f6l\u00e7eklenebilir bir \u00e7\u00f6z\u00fcm sundu\u011funu g\u00f6rd\u00fck.<\/p>\n<p>Kurulum \u00f6ncesi sistem g\u00fcncellemeleri ve g\u00fcvenlik duvar\u0131 yap\u0131land\u0131rmas\u0131 gibi haz\u0131rl\u0131k ad\u0131mlar\u0131, sorunsuz bir ba\u015flang\u0131\u00e7 i\u00e7in ne kadar kritik oldu\u011funu g\u00f6sterdi. Ard\u0131ndan, Nginx&#8217;i <code>apt<\/code> paketi y\u00f6neticisiyle kolayca kurduk ve servis y\u00f6netimini <code>systemctl<\/code> komutlar\u0131yla nas\u0131l yapaca\u011f\u0131m\u0131z\u0131 \u00f6\u011frendik. Sanal hostlar (server blocks) olu\u015fturarak birden fazla web sitesini tek bir Nginx sunucusu \u00fczerinde bar\u0131nd\u0131rma yetene\u011fi, Nginx&#8217;in esnekli\u011finin temel bir g\u00f6stergesiydi. Son olarak, SSL\/TLS \u015fifrelemesi ile g\u00fcvenli\u011fi art\u0131rman\u0131n ve \u00f6nbellekleme ile Gzip s\u0131k\u0131\u015ft\u0131rma gibi tekniklerle performans\u0131 optimize etmenin yollar\u0131n\u0131 ke\u015ffettik. Kar\u015f\u0131la\u015f\u0131labilecek yayg\u0131n sorunlara ve bunlar\u0131n \u00e7\u00f6z\u00fcm yollar\u0131na de\u011finerek, olas\u0131 aksakl\u0131klar kar\u015f\u0131s\u0131nda nas\u0131l bir yol izlemeniz gerekti\u011fi konusunda size rehberlik ettik.<\/p>\n<p>Nginx, modern web altyap\u0131lar\u0131n\u0131n belkemi\u011fidir ve bu rehberdeki bilgilerle, kendi web projeleriniz i\u00e7in sa\u011flam, h\u0131zl\u0131 ve g\u00fcvenli bir temel olu\u015fturmak i\u00e7in gerekli t\u00fcm ara\u00e7lara sahipsiniz. Unutmay\u0131n, sunucu y\u00f6netimi s\u00fcrekli bir \u00f6\u011frenme s\u00fcrecidir. Nginx&#8217;in zengin dok\u00fcmantasyonunu ke\u015ffetmeye devam etmek, ileri d\u00fczey yap\u0131land\u0131rmalar\u0131 denemek ve g\u00fcvenlik en iyi uygulamalar\u0131n\u0131 takip etmek, becerilerinizi geli\u015ftirmek i\u00e7in \u00f6nemlidir. \u015eimdi, Nginx&#8217;in g\u00fcc\u00fcn\u00fc kullanarak web d\u00fcnyas\u0131nda kendi izlerinizi b\u0131rakmaya haz\u0131rs\u0131n\u0131z!<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<p><strong>1. Nginx mi yoksa Apache mi kullanmal\u0131y\u0131m?<\/strong><\/p>\n<p>Her iki web sunucusunun da kendine \u00f6zg\u00fc avantajlar\u0131 vard\u0131r. Apache, zengin mod\u00fcl deste\u011fi ve .htaccess dosyalar\u0131 arac\u0131l\u0131\u011f\u0131yla dizin baz\u0131nda yap\u0131land\u0131rma esnekli\u011fi sunarken, Nginx y\u00fcksek e\u015fzamanl\u0131 ba\u011flant\u0131lar\u0131 d\u00fc\u015f\u00fck kaynak t\u00fcketimiyle i\u015fleme konusunda \u00fcst\u00fcnd\u00fcr. Genellikle, Nginx statik i\u00e7erik sunumu, ters proxy ve y\u00fck dengeleme i\u00e7in daha performansl\u0131 kabul edilirken, Apache daha dinamik ve esnek yap\u0131land\u0131rmalar i\u00e7in tercih edilebilir. Bir\u00e7ok modern kurulumda Nginx, statik i\u00e7erik ve ters proxy olarak \u00f6nde, Apache ise dinamik i\u00e7erik (PHP gibi) i\u00e7in arka u\u00e7 sunucusu olarak kullan\u0131l\u0131r. Se\u00e7im, projenizin \u00f6zel ihtiya\u00e7lar\u0131na ve trafik beklentilerinize ba\u011fl\u0131d\u0131r.<\/p>\n<p><strong>2. Ubuntu 16.04 yerine daha yeni bir Ubuntu s\u00fcr\u00fcm\u00fc kullanmal\u0131 m\u0131y\u0131m?<\/strong><\/p>\n<p>Evet, genellikle en g\u00fcncel LTS (Uzun S\u00fcreli Destek) Ubuntu s\u00fcr\u00fcm\u00fcn\u00fc kullanman\u0131z \u00f6nerilir. Ubuntu 16.04&#8217;\u00fcn resmi deste\u011fi sona ermi\u015f veya sona ermek \u00fczere olabilir (genellikle 5 y\u0131l). Daha yeni s\u00fcr\u00fcmler, g\u00fcncel yaz\u0131l\u0131m paketleri, daha iyi performans optimizasyonlar\u0131, yeni g\u00fcvenlik yamalar\u0131 ve daha uzun s\u00fcreli destek sunar. Ancak, mevcut bir altyap\u0131n\u0131z varsa veya belirli yaz\u0131l\u0131m ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131z Ubuntu 16.04&#8217;e kilitlenmi\u015fse, bu rehber size mevcut sisteminizi verimli bir \u015fekilde kullanma imkan\u0131 sunar. Yeni projeler i\u00e7in kesinlikle daha g\u00fcncel bir Ubuntu LTS s\u00fcr\u00fcm\u00fcn\u00fc tercih etmelisiniz.<\/p>\n<p><strong>3. Nginx yap\u0131land\u0131rma dosyalar\u0131n\u0131 nerede bulabilirim?<\/strong><\/p>\n<p>Nginx&#8217;in ana yap\u0131land\u0131rma dosyas\u0131 <code>\/etc\/nginx\/nginx.conf<\/code> konumundad\u0131r. Siteye \u00f6zel yap\u0131land\u0131rma dosyalar\u0131 ise genellikle <code>\/etc\/nginx\/sites-available\/<\/code> dizininde bulunur ve etkinle\u015ftirildiklerinde <code>\/etc\/nginx\/sites-enabled\/<\/code> dizinine sembolik ba\u011flant\u0131lar olu\u015fturulur. Ayr\u0131ca, Nginx mod\u00fclleri i\u00e7in ek yap\u0131land\u0131rma dosyalar\u0131 <code>\/etc\/nginx\/conf.d\/<\/code> veya <code>\/etc\/nginx\/snippets\/<\/code> gibi dizinlerde yer alabilir. Bu dizinleri bilmek, Nginx&#8217;i \u00f6zelle\u015ftirmeniz ve sorun gidermeniz i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<p><strong>4. Nginx log dosyalar\u0131 nerede bulunur ve nas\u0131l incelenir?<\/strong><\/p>\n<p>Nginx&#8217;in eri\u015fim (access) ve hata (error) log dosyalar\u0131 genellikle <code>\/var\/log\/nginx\/<\/code> dizininde bulunur. Varsay\u0131lan olarak, eri\u015fim loglar\u0131 <code>access.log<\/code> ve hata loglar\u0131 <code>error.log<\/code> olarak adland\u0131r\u0131l\u0131r. Bu dosyalar\u0131 incelemek i\u00e7in <code>cat<\/code>, <code>less<\/code>, <code>tail<\/code> veya <code>grep<\/code> gibi Linux komutlar\u0131n\u0131 kullanabilirsiniz. \u00d6zellikle <code>tail -f \/var\/log\/nginx\/error.log<\/code> komutu, hata loglar\u0131n\u0131 ger\u00e7ek zamanl\u0131 olarak izlemenizi sa\u011flar ve sorun giderme s\u0131ras\u0131nda \u00e7ok faydal\u0131d\u0131r. Loglar, web sitenizdeki hatalar\u0131n, eri\u015fim sorunlar\u0131n\u0131n ve genel trafi\u011fin anla\u015f\u0131lmas\u0131 i\u00e7in de\u011ferli bilgiler i\u00e7erir.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu 16.04 \u00dczerine Nginx Kurulumu: Ad\u0131m Ad\u0131m Kapsaml\u0131 Rehber Web sunucusu se\u00e7imi, herhangi bir web projesinin temel ta\u015flar\u0131ndan&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-39292","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Nginx Nedir ve Neden Ubuntu 16.04 \u00dczerine Kurmal\u0131s\u0131n\u0131z?<\/title>\n<meta name=\"description\" content=\"Web sunucusu se\u00e7imi, herhangi bir web projesinin temel ta\u015flar\u0131ndan biridir. Performans, g\u00fcvenlik ve \u00f6l\u00e7eklenebilirlik, do\u011fru se\u00e7imi yaparken g\u00f6z \u00f6n\u00fcnde bulundurman\u0131z gereken kritik fakt\u00f6rlerdir. Ubuntu 16.04 gibi istikrarl\u0131 bir i\u015fletim sistemi \u00fczerinde Nginx kurmak, bu hedeflere ula\u015fman\u0131z i\u00e7in g\u00fc\u00e7l\u00fc ve verimli bir yol sunar. Bu rehberde, Nginx&#039;i s\u0131f\u0131rdan kurmay\u0131, temel yap\u0131land\u0131rmalar\u0131 yapmay\u0131 ve sunucunuzu g\u00fcvenli ve y\u00fcksek performansl\u0131 hale getirmek i\u00e7in ipu\u00e7lar\u0131n\u0131 ke\u015ffedeceksiniz.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Nginx Nedir ve Neden Ubuntu 16.04 \u00dczerine Kurmal\u0131s\u0131n\u0131z?\" \/>\n<meta property=\"og:description\" content=\"Web sunucusu se\u00e7imi, herhangi bir web projesinin temel ta\u015flar\u0131ndan biridir. Performans, g\u00fcvenlik ve \u00f6l\u00e7eklenebilirlik, do\u011fru se\u00e7imi yaparken g\u00f6z \u00f6n\u00fcnde bulundurman\u0131z gereken kritik fakt\u00f6rlerdir. Ubuntu 16.04 gibi istikrarl\u0131 bir i\u015fletim sistemi \u00fczerinde Nginx kurmak, bu hedeflere ula\u015fman\u0131z i\u00e7in g\u00fc\u00e7l\u00fc ve verimli bir yol sunar. Bu rehberde, Nginx&#039;i s\u0131f\u0131rdan kurmay\u0131, temel yap\u0131land\u0131rmalar\u0131 yapmay\u0131 ve sunucunuzu g\u00fcvenli ve y\u00fcksek performansl\u0131 hale getirmek i\u00e7in ipu\u00e7lar\u0131n\u0131 ke\u015ffedeceksiniz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-18T09:24:20+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"29 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Nginx Nedir ve Neden Ubuntu 16.04 \u00dczerine Kurmal\u0131s\u0131n\u0131z?\",\"datePublished\":\"2026-02-18T09:24:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/\"},\"wordCount\":5280,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/\",\"name\":\"Nginx Nedir ve Neden Ubuntu 16.04 \u00dczerine Kurmal\u0131s\u0131n\u0131z?\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-18T09:24:20+00:00\",\"description\":\"Web sunucusu se\u00e7imi, herhangi bir web projesinin temel ta\u015flar\u0131ndan biridir. Performans, g\u00fcvenlik ve \u00f6l\u00e7eklenebilirlik, do\u011fru se\u00e7imi yaparken g\u00f6z \u00f6n\u00fcnde bulundurman\u0131z gereken kritik fakt\u00f6rlerdir. Ubuntu 16.04 gibi istikrarl\u0131 bir i\u015fletim sistemi \u00fczerinde Nginx kurmak, bu hedeflere ula\u015fman\u0131z i\u00e7in g\u00fc\u00e7l\u00fc ve verimli bir yol sunar. Bu rehberde, Nginx'i s\u0131f\u0131rdan kurmay\u0131, temel yap\u0131land\u0131rmalar\u0131 yapmay\u0131 ve sunucunuzu g\u00fcvenli ve y\u00fcksek performansl\u0131 hale getirmek i\u00e7in ipu\u00e7lar\u0131n\u0131 ke\u015ffedeceksiniz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Nginx Nedir ve Neden Ubuntu 16.04 \u00dczerine Kurmal\u0131s\u0131n\u0131z?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Nginx Nedir ve Neden Ubuntu 16.04 \u00dczerine Kurmal\u0131s\u0131n\u0131z?","description":"Web sunucusu se\u00e7imi, herhangi bir web projesinin temel ta\u015flar\u0131ndan biridir. Performans, g\u00fcvenlik ve \u00f6l\u00e7eklenebilirlik, do\u011fru se\u00e7imi yaparken g\u00f6z \u00f6n\u00fcnde bulundurman\u0131z gereken kritik fakt\u00f6rlerdir. Ubuntu 16.04 gibi istikrarl\u0131 bir i\u015fletim sistemi \u00fczerinde Nginx kurmak, bu hedeflere ula\u015fman\u0131z i\u00e7in g\u00fc\u00e7l\u00fc ve verimli bir yol sunar. Bu rehberde, Nginx'i s\u0131f\u0131rdan kurmay\u0131, temel yap\u0131land\u0131rmalar\u0131 yapmay\u0131 ve sunucunuzu g\u00fcvenli ve y\u00fcksek performansl\u0131 hale getirmek i\u00e7in ipu\u00e7lar\u0131n\u0131 ke\u015ffedeceksiniz.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/","og_locale":"tr_TR","og_type":"article","og_title":"Nginx Nedir ve Neden Ubuntu 16.04 \u00dczerine Kurmal\u0131s\u0131n\u0131z?","og_description":"Web sunucusu se\u00e7imi, herhangi bir web projesinin temel ta\u015flar\u0131ndan biridir. Performans, g\u00fcvenlik ve \u00f6l\u00e7eklenebilirlik, do\u011fru se\u00e7imi yaparken g\u00f6z \u00f6n\u00fcnde bulundurman\u0131z gereken kritik fakt\u00f6rlerdir. Ubuntu 16.04 gibi istikrarl\u0131 bir i\u015fletim sistemi \u00fczerinde Nginx kurmak, bu hedeflere ula\u015fman\u0131z i\u00e7in g\u00fc\u00e7l\u00fc ve verimli bir yol sunar. Bu rehberde, Nginx'i s\u0131f\u0131rdan kurmay\u0131, temel yap\u0131land\u0131rmalar\u0131 yapmay\u0131 ve sunucunuzu g\u00fcvenli ve y\u00fcksek performansl\u0131 hale getirmek i\u00e7in ipu\u00e7lar\u0131n\u0131 ke\u015ffedeceksiniz.","og_url":"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-18T09:24:20+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"29 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Nginx Nedir ve Neden Ubuntu 16.04 \u00dczerine Kurmal\u0131s\u0131n\u0131z?","datePublished":"2026-02-18T09:24:20+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/"},"wordCount":5280,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/","url":"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/","name":"Nginx Nedir ve Neden Ubuntu 16.04 \u00dczerine Kurmal\u0131s\u0131n\u0131z?","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-18T09:24:20+00:00","description":"Web sunucusu se\u00e7imi, herhangi bir web projesinin temel ta\u015flar\u0131ndan biridir. Performans, g\u00fcvenlik ve \u00f6l\u00e7eklenebilirlik, do\u011fru se\u00e7imi yaparken g\u00f6z \u00f6n\u00fcnde bulundurman\u0131z gereken kritik fakt\u00f6rlerdir. Ubuntu 16.04 gibi istikrarl\u0131 bir i\u015fletim sistemi \u00fczerinde Nginx kurmak, bu hedeflere ula\u015fman\u0131z i\u00e7in g\u00fc\u00e7l\u00fc ve verimli bir yol sunar. Bu rehberde, Nginx'i s\u0131f\u0131rdan kurmay\u0131, temel yap\u0131land\u0131rmalar\u0131 yapmay\u0131 ve sunucunuzu g\u00fcvenli ve y\u00fcksek performansl\u0131 hale getirmek i\u00e7in ipu\u00e7lar\u0131n\u0131 ke\u015ffedeceksiniz.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/nginx-nedir-ve-neden-ubuntu-16-04-uzerine-kurmalisiniz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Nginx Nedir ve Neden Ubuntu 16.04 \u00dczerine Kurmal\u0131s\u0131n\u0131z?"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=39292"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39292\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=39292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=39292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=39292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}