{"id":33678,"date":"2025-11-05T20:40:50","date_gmt":"2025-11-05T17:40:50","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=33678"},"modified":"2025-11-05T20:40:50","modified_gmt":"2025-11-05T17:40:50","slug":"nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/","title":{"rendered":"Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Ubuntu 14.04 LTS \u00dczerine Nas\u0131l Kurulur?"},"content":{"rendered":"<p><body><\/p>\n<h2>Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Ubuntu 14.04 LTS \u00dczerine Nas\u0131l Kurulur?<\/h2>\n<p>Modern web bar\u0131nd\u0131rma d\u00fcnyas\u0131nda, tek bir sunucu \u00fczerinde birden fazla web sitesini y\u00f6netmek standart bir uygulamad\u0131r. Bu yetenek, sunucu kaynaklar\u0131n\u0131n daha verimli kullan\u0131lmas\u0131n\u0131 sa\u011flar ve maliyetleri d\u00fc\u015f\u00fcr\u00fcr. Nginx, y\u00fcksek performansl\u0131 ve hafif bir web sunucusu olarak bu g\u00f6revi &#8220;Sunucu Bloklar\u0131&#8221; (Server Blocks) ad\u0131 verilen yap\u0131land\u0131rmalar arac\u0131l\u0131\u011f\u0131yla yerine getirir. Di\u011fer web sunucular\u0131nda &#8220;Sanal Hostlar&#8221; (Virtual Hosts) olarak bilinen bu kavram, Nginx&#8217;in temel \u00f6zelliklerinden biridir. Bu makalede, Ubuntu 14.04 LTS i\u015fletim sistemi \u00fczerinde Nginx sunucu bloklar\u0131n\u0131n nas\u0131l kurulaca\u011f\u0131n\u0131 ve yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m, kapsaml\u0131 bir \u015fekilde inceleyece\u011fiz.<\/p>\n<p>Ubuntu 14.04 LTS, her ne kadar uzun s\u00fcreli destek (Long Term Support) s\u00fcr\u00fcm\u00fc olsa da, art\u0131k resmi destek s\u00fcresi sona ermi\u015ftir. Ancak, belirli kurumsal ortamlar veya eski sistemler hala bu s\u00fcr\u00fcm\u00fc kullan\u0131yor olabilir. Bu nedenle, makaledeki ad\u0131mlar \u00f6zellikle Ubuntu 14.04 LTS&#8217;e uygun olarak, d\u00f6nemin paket y\u00f6netimini ve servis komutlar\u0131n\u0131 dikkate alarak haz\u0131rlanm\u0131\u015ft\u0131r.<\/p>\n<h3>\u00d6n Haz\u0131rl\u0131klar ve Temel Bilgiler<\/h3>\n<p>Nginx sunucu bloklar\u0131n\u0131 kurmaya ba\u015flamadan \u00f6nce baz\u0131 temel gereksinimleri ve kavramlar\u0131 anlamak \u00f6nemlidir.<\/p>\n<h4>Ubuntu 14.04 LTS ve Nginx Kurulumu<\/h4>\n<p>Bu makaledeki ad\u0131mlar\u0131 uygulayabilmek i\u00e7in \u00f6ncelikle Ubuntu 14.04 LTS sunucunuzda Nginx&#8217;in kurulu ve \u00e7al\u0131\u015f\u0131r durumda olmas\u0131 gerekmektedir. E\u011fer Nginx kurulu de\u011filse, a\u015fa\u011f\u0131daki komutlar\u0131 kullanarak kolayca kurabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get update\nsudo apt-get install nginx\nsudo service nginx start<\/code><\/pre>\n<p>Kurulumdan sonra, sunucunuzun IP adresini bir web taray\u0131c\u0131s\u0131na yazarak Nginx&#8217;in varsay\u0131lan &#8220;Welcome to Nginx!&#8221; sayfas\u0131n\u0131 g\u00f6rmeniz gerekir. Bu, Nginx&#8217;in do\u011fru bir \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<h4>DNS Kay\u0131tlar\u0131 ve Alan Adlar\u0131<\/h4>\n<p>Sunucu bloklar\u0131n\u0131n d\u00fczg\u00fcn \u00e7al\u0131\u015fabilmesi i\u00e7in, bar\u0131nd\u0131rmak istedi\u011finiz her alan ad\u0131n\u0131n (\u00f6rne\u011fin, <code>alanadi1.com<\/code>, <code>alanadi2.com<\/code>) sunucunuzun genel IP adresine i\u015faret etmesi gerekir. Bu, alan ad\u0131 kay\u0131t \u015firketinizin veya DNS sa\u011flay\u0131c\u0131n\u0131z\u0131n kontrol panelinden &#8220;A kayd\u0131&#8221; olu\u015fturarak yap\u0131l\u0131r. \u00d6rne\u011fin, <code>alanadi1.com<\/code> ve <code>www.alanadi1.com<\/code> i\u00e7in sunucunuzun IP adresine i\u015faret eden A kay\u0131tlar\u0131 olu\u015fturmal\u0131s\u0131n\u0131z. DNS de\u011fi\u015fikliklerinin internete yay\u0131lmas\u0131 (propagation) biraz zaman alabilir (birka\u00e7 dakika ila 24 saat).<\/p>\n<h4>Nginx Yap\u0131land\u0131rma Dosyalar\u0131n\u0131n Dizayn Felsefesi<\/h4>\n<p>Nginx, yap\u0131land\u0131rmalar\u0131n\u0131 mod\u00fcler bir \u015fekilde y\u00f6netir. Ana yap\u0131land\u0131rma dosyas\u0131 <code>\/etc\/nginx\/nginx.conf<\/code>&#8216;tur. Bu dosya genellikle genel Nginx ayarlar\u0131n\u0131 (worker s\u00fcre\u00e7leri, log ayarlar\u0131, gzip s\u0131k\u0131\u015ft\u0131rma vb.) i\u00e7erir ve di\u011fer yap\u0131land\u0131rma dosyalar\u0131n\u0131 dahil etmek i\u00e7in <code>include<\/code> direktifini kullan\u0131r.<\/p>\n<p>Sunucu bloklar\u0131 i\u00e7in ana dizinler \u015funlard\u0131r:<br \/>\n*   <code>\/etc\/nginx\/sites-available\/<\/code>: Bu dizin, olu\u015fturdu\u011funuz her sunucu blo\u011fu i\u00e7in ayr\u0131 yap\u0131land\u0131rma dosyalar\u0131n\u0131 i\u00e7erir. Bu dosyalar, etkinle\u015ftirilene kadar pasif kal\u0131r.<br \/>\n*   <code>\/etc\/nginx\/sites-enabled\/<\/code>: Bu dizin, etkinle\u015ftirilmi\u015f sunucu bloklar\u0131na i\u015faret eden sembolik ba\u011flant\u0131lar\u0131 (symbolic links) i\u00e7erir. Nginx, ba\u015flat\u0131ld\u0131\u011f\u0131nda veya yeniden y\u00fcklendi\u011finde bu dizindeki ba\u011flant\u0131lar\u0131 okuyarak hangi sitelerin aktif oldu\u011funu anlar.<br \/>\n*   <code>\/etc\/nginx\/snippets\/<\/code>: Bu dizin, birden fazla sunucu blo\u011funda tekrar kullanabilece\u011finiz k\u00fc\u00e7\u00fck yap\u0131land\u0131rma par\u00e7ac\u0131klar\u0131n\u0131 (\u00f6rne\u011fin, PHP-FPM ayarlar\u0131 veya SSL sertifika yollar\u0131) saklamak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p>Bu yap\u0131land\u0131rma felsefesi, y\u00f6netimi kolayla\u015ft\u0131r\u0131r ve farkl\u0131 siteler aras\u0131nda temiz bir ayr\u0131m sa\u011flar.<\/p>\n<h3>\u0130lk Sunucu Blo\u011funun Olu\u015fturulmas\u0131 (Varsay\u0131lan Yap\u0131land\u0131rma)<\/h3>\n<p>Nginx&#8217;i kurdu\u011funuzda, genellikle <code>\/etc\/nginx\/sites-available\/default<\/code> ad\u0131nda varsay\u0131lan bir sunucu blo\u011fu dosyas\u0131yla gelir. Bu dosya, herhangi bir \u00f6zel sunucu blo\u011fu tan\u0131mlanmad\u0131\u011f\u0131nda veya gelen iste\u011fin <code>server_name<\/code>&#8216;i tan\u0131ml\u0131 hi\u00e7bir blo\u011fa uymad\u0131\u011f\u0131nda devreye girer.<\/p>\n<h4>Varsay\u0131lan Nginx Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Varsay\u0131lan yap\u0131land\u0131rma dosyas\u0131 genellikle \u015fu \u015fekildedir:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80 default_server;\n    listen [::]:80 default_server ipv6only=on;\n\n    root \/usr\/share\/nginx\/html;\n    index index.html index.htm;\n\n    # Make site accessible from http:\/\/localhost\/\n    server_name localhost;\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n}<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rma, 80 numaral\u0131 porttan gelen t\u00fcm isteklere yan\u0131t verir ve <code>\/usr\/share\/nginx\/html<\/code> dizinindeki <code>index.html<\/code> dosyas\u0131n\u0131 sunar. <code>default_server<\/code> anahtar kelimesi, bu blo\u011fun herhangi bir \u00f6zel <code>server_name<\/code> e\u015fle\u015fmesi olmad\u0131\u011f\u0131nda varsay\u0131lan olarak kullan\u0131laca\u011f\u0131n\u0131 belirtir.<\/p>\n<h4>Server Bloklar\u0131n\u0131n Temel Yap\u0131s\u0131<\/h4>\n<p>Her Nginx sunucu blo\u011fu, bir <code>server<\/code> blo\u011fu i\u00e7inde tan\u0131mlan\u0131r. Bu blok, Nginx&#8217;e belirli bir alan ad\u0131 veya IP adresi i\u00e7in gelen isteklere nas\u0131l yan\u0131t verece\u011fini s\u00f6yler. Temel direktifler \u015funlard\u0131r:<\/p>\n<p>*   <code>listen<\/code>: Nginx&#8217;in hangi port ve IP adresinden gelen ba\u011flant\u0131lar\u0131 dinlemesi gerekti\u011fini belirtir. Genellikle HTTP i\u00e7in 80, HTTPS i\u00e7in 443 kullan\u0131l\u0131r. <code>default_server<\/code> anahtar kelimesi ile varsay\u0131lan sunucu blo\u011fu belirlenebilir.<br \/>\n*   <code>server_name<\/code>: Bu sunucu blo\u011funun hangi alan adlar\u0131na yan\u0131t verece\u011fini belirtir. Birden fazla alan ad\u0131 bo\u015fluklarla ayr\u0131labilir (\u00f6rne\u011fin, <code>alanadi1.com www.alanadi1.com<\/code>).<br \/>\n*   <code>root<\/code>: Web sitesinin dosyalar\u0131n\u0131n bulundu\u011fu k\u00f6k dizini belirtir. Nginx, bu dizin alt\u0131nda dosya arar.<br \/>\n*   <code>index<\/code>: Bir dizine eri\u015fildi\u011finde Nginx&#8217;in hangi dosyalar\u0131 otomatik olarak arayaca\u011f\u0131n\u0131 belirtir (\u00f6rne\u011fin, <code>index.html<\/code>, <code>index.php<\/code>).<br \/>\n*   <code>location<\/code>: Belirli URL yollar\u0131na (URI&#8217;lara) nas\u0131l yan\u0131t verilece\u011fini tan\u0131mlar. Bu bloklar, belirli dosyalar\u0131 sunmak, proxy ge\u00e7i\u015fi yapmak veya belirli kurallar\u0131 uygulamak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h3>Yeni Bir Sunucu Blo\u011fu Olu\u015fturma ve Yap\u0131land\u0131rma<\/h3>\n<p>\u015eimdi <code>alanadi1.com<\/code> ad\u0131nda yeni bir web sitesi i\u00e7in bir sunucu blo\u011fu olu\u015ftural\u0131m.<\/p>\n<h4>Alan Adlar\u0131 \u0130\u00e7in Dizin Yap\u0131s\u0131 Olu\u015fturma<\/h4>\n<p>Her web sitesi i\u00e7in ayr\u0131 bir belge k\u00f6k\u00fc (document root) olu\u015fturmak iyi bir uygulamad\u0131r. Bu, siteler aras\u0131ndaki kar\u0131\u015f\u0131kl\u0131\u011f\u0131 \u00f6nler ve g\u00fcvenli\u011fi art\u0131r\u0131r. Genellikle <code>\/var\/www\/<\/code> dizini alt\u0131nda her site i\u00e7in ayr\u0131 bir dizin olu\u015fturulur.<\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/var\/www\/alanadi1.com\/html<\/code><\/pre>\n<p>Bu komut, <code>alanadi1.com<\/code> i\u00e7in bir k\u00f6k dizin ve i\u00e7inde bir <code>html<\/code> dizini olu\u015fturur. <code>html<\/code> dizini, web sitesinin t\u00fcm dosyalar\u0131n\u0131 i\u00e7erecektir.<\/p>\n<p>Nginx&#8217;in web dosyalar\u0131n\u0131 okuyabilmesi ve gerekti\u011finde yazabilmesi i\u00e7in do\u011fru dosya izinlerini ayarlamak \u00f6nemlidir. Nginx, genellikle <code>www-data<\/code> kullan\u0131c\u0131s\u0131 ve grubu alt\u0131nda \u00e7al\u0131\u015f\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo chown -R www-data:www-data \/var\/www\/alanadi1.com\/html\nsudo chmod -R 755 \/var\/www\/alanadi1.com<\/code><\/pre>\n<p>\u015eimdi, test etmek i\u00e7in basit bir <code>index.html<\/code> dosyas\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">echo \"<html><body><\/body><\/html>\" | sudo tee \/var\/www\/alanadi1.com\/html\/index.html<\/code><\/pre>\n<h4>Sunucu Blo\u011fu Yap\u0131land\u0131rma Dosyas\u0131n\u0131 Olu\u015fturma<\/h4>\n<p>Yeni sunucu blo\u011fu yap\u0131land\u0131rma dosyam\u0131z\u0131 <code>\/etc\/nginx\/sites-available\/<\/code> dizininde olu\u015fturaca\u011f\u0131z. Dosya ad\u0131 genellikle alan ad\u0131yla ayn\u0131 olur (\u00f6rne\u011fin, <code>alanadi1.com<\/code>).<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/alanadi1.com<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki i\u00e7eri\u011fi dosyaya yap\u0131\u015ft\u0131r\u0131n ve kaydedin (Ctrl+X, Y, Enter):<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    listen [::]:80; # IPv6 deste\u011fi i\u00e7in\n\n    root \/var\/www\/alanadi1.com\/html;\n    index index.html index.htm index.nginx-debian.html; # Nginx'in arayaca\u011f\u0131 varsay\u0131lan dosyalar\n\n    server_name alanadi1.com www.alanadi1.com; # Bu blo\u011fun yan\u0131t verece\u011fi alan adlar\u0131\n\n    location \/ {\n        try_files $uri $uri\/ =404; # Dosya bulunamazsa 404 d\u00f6nd\u00fcr\n    }\n\n    # Hata sayfalar\u0131 (iste\u011fe ba\u011fl\u0131, ancak iyi bir uygulamad\u0131r)\n    error_page 404 \/404.html;\n    location = \/404.html {\n        internal;\n    }\n\n    error_page 500 502 503 504 \/50x.html;\n    location = \/50x.html {\n        internal;\n    }\n\n    access_log \/var\/log\/nginx\/alanadi1.com_access.log;\n    error_log \/var\/log\/nginx\/alanadi1.com_error.log;\n}<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rma \u015funlar\u0131 yapar:<br \/>\n*   Hem IPv4 hem de IPv6 \u00fczerinden 80 numaral\u0131 portu dinler.<br \/>\n*   Web sitesi dosyalar\u0131n\u0131n <code>\/var\/www\/alanadi1.com\/html<\/code> dizininde oldu\u011funu belirtir.<br \/>\n*   <code>alanadi1.com<\/code> ve <code>www.alanadi1.com<\/code> alan adlar\u0131 i\u00e7in gelen isteklere yan\u0131t verir.<br \/>\n*   <code>location \/<\/code> blo\u011fu, Nginx&#8217;e gelen isteklere nas\u0131l yan\u0131t verece\u011fini s\u00f6yler. <code>try_files<\/code> direktifi, \u00f6nce istenen dosyay\u0131 (<code>$uri<\/code>), sonra dizini (<code>$uri\/<\/code>) arar ve hi\u00e7biri bulunamazsa 404 hatas\u0131 d\u00f6nd\u00fcr\u00fcr.<br \/>\n*   \u00d6zel eri\u015fim ve hata g\u00fcnl\u00fckleri i\u00e7in yollar belirtir.<\/p>\n<h4>Sunucu Blo\u011funu Etkinle\u015ftirme<\/h4>\n<p>Yeni yap\u0131land\u0131rma dosyas\u0131n\u0131 etkinle\u015ftirmek i\u00e7in, <code>\/etc\/nginx\/sites-available\/<\/code> dizinindeki dosyaya <code>\/etc\/nginx\/sites-enabled\/<\/code> dizininde bir sembolik ba\u011flant\u0131 olu\u015fturmam\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo ln -s \/etc\/nginx\/sites-available\/alanadi1.com \/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n<p>Bu ad\u0131m, Nginx&#8217;e bu yeni yap\u0131land\u0131rmay\u0131 kullanmas\u0131n\u0131 s\u00f6yler.<\/p>\n<h4>Nginx Yap\u0131land\u0131rmas\u0131n\u0131 Test Etme<\/h4>\n<p>Herhangi bir Nginx de\u011fi\u015fikli\u011finden sonra, yap\u0131land\u0131rma dosyas\u0131nda s\u00f6zdizimi hatalar\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek kritik \u00f6neme sahiptir. Bu, Nginx&#8217;in yeniden ba\u015flat\u0131l\u0131rken hata vermesini ve \u00e7evrimd\u0131\u015f\u0131 kalmas\u0131n\u0131 \u00f6nler.<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t<\/code><\/pre>\n<p>E\u011fer her \u015fey yolundaysa, \u015f\u00f6yle bir \u00e7\u0131kt\u0131 g\u00f6rmelisiniz:<\/p>\n<pre><code class=\"language-\">nginx: the configuration file \/etc\/nginx\/nginx.conf syntax is ok\nnginx: configuration file \/etc\/nginx\/nginx.conf test is successful<\/code><\/pre>\n<p>Herhangi bir hata varsa, hatan\u0131n belirtildi\u011fi sat\u0131r\u0131 kontrol edip d\u00fczeltmeniz gerekir.<\/p>\n<h4>Nginx&#8217;i Yeniden Ba\u015flatma<\/h4>\n<p>Yap\u0131land\u0131rma testi ba\u015far\u0131l\u0131 olduktan sonra, Nginx&#8217;i yeniden ba\u015flatarak yeni sunucu blo\u011funu etkinle\u015ftirin:<\/p>\n<pre><code class=\"language-bash\">sudo service nginx restart<\/code><\/pre>\n<p>Art\u0131k web taray\u0131c\u0131n\u0131zda <code>http:\/\/alanadi1.com<\/code> adresini ziyaret etti\u011finizde, az \u00f6nce olu\u015fturdu\u011funuz &#8220;Merhaba Alan Ad\u0131 1!&#8221; mesaj\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<h3>Birden Fazla Sunucu Blo\u011fu ve Geli\u015fmi\u015f Yap\u0131land\u0131rmalar<\/h3>\n<p>Tek bir sunucu blo\u011fu olu\u015fturmay\u0131 \u00f6\u011frendi\u011finize g\u00f6re, \u015fimdi birden fazla siteyi bar\u0131nd\u0131rma ve baz\u0131 geli\u015fmi\u015f yap\u0131land\u0131rma se\u00e7eneklerini ke\u015ffetme zaman\u0131.<\/p>\n<h4>\u0130kinci Bir Sunucu Blo\u011fu Olu\u015fturma<\/h4>\n<p><code>alanadi2.com<\/code> ad\u0131nda ikinci bir web sitesi i\u00e7in sunucu blo\u011fu olu\u015fturmak, yukar\u0131daki ad\u0131mlar\u0131n tekrar\u0131ndan ibarettir:<\/p>\n<p>1.  <strong>Dizin Olu\u015fturma ve \u0130zinleri Ayarlama:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/var\/www\/alanadi2.com\/html\n    sudo chown -R www-data:www-data \/var\/www\/alanadi2.com\/html\n    sudo chmod -R 755 \/var\/www\/alanadi2.com\n    echo \"<html><body><\/body><\/html>\" | sudo tee \/var\/www\/alanadi2.com\/html\/index.html<\/code><\/pre>\n<p>2.  <strong>Yap\u0131land\u0131rma Dosyas\u0131 Olu\u015fturma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/alanadi2.com<\/code><\/pre>\n<p>    \u0130\u00e7erik (alan ad\u0131 ve root dizinini de\u011fi\u015ftirerek):<\/p>\n<pre><code class=\"language-nginx\">server {\n        listen 80;\n        listen [::]:80;\n\n        root \/var\/www\/alanadi2.com\/html;\n        index index.html index.htm;\n\n        server_name alanadi2.com www.alanadi2.com;\n\n        location \/ {\n            try_files $uri $uri\/ =404;\n        }\n\n        access_log \/var\/log\/nginx\/alanadi2.com_access.log;\n        error_log \/var\/log\/nginx\/alanadi2.com_error.log;\n    }<\/code><\/pre>\n<p>3.  <strong>Sembolik Ba\u011flant\u0131 Olu\u015fturma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ln -s \/etc\/nginx\/sites-available\/alanadi2.com \/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n<p>4.  <strong>Nginx&#8217;i Test Etme ve Yeniden Ba\u015flatma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo nginx -t\n    sudo service nginx restart<\/code><\/pre>\n<p>Art\u0131k <code>http:\/\/alanadi2.com<\/code> adresini ziyaret etti\u011finizde ikinci web sitenizi g\u00f6rmelisiniz.<\/p>\n<h4>PHP Uygulamalar\u0131 \u0130\u00e7in Yap\u0131land\u0131rma (FastCGI)<\/h4>\n<p>\u00c7o\u011fu modern web uygulamas\u0131 (WordPress, Drupal, Laravel vb.) PHP kullan\u0131r. Nginx, PHP kodunu do\u011frudan i\u015fleyemez; bunun yerine PHP-FPM (FastCGI Process Manager) gibi bir FastCGI i\u015flemcisine yetki verir. Ubuntu 14.04 LTS&#8217;te genellikle <code>php5-fpm<\/code> paketi kullan\u0131l\u0131r.<\/p>\n<p>\u00d6ncelikle <code>php5-fpm<\/code>&#8216;i kurman\u0131z gerekebilir:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install php5-fpm\nsudo service php5-fpm start<\/code><\/pre>\n<p>Ard\u0131ndan, PHP uygulamalar\u0131n\u0131 bar\u0131nd\u0131racak sunucu blo\u011funuza (\u00f6rne\u011fin, <code>alanadi1.com<\/code>) PHP i\u015fleme yetene\u011fini eklemek i\u00e7in <code>location ~ \\.php$<\/code> blo\u011funu eklemelisiniz. <code>\/etc\/nginx\/sites-available\/alanadi1.com<\/code> dosyas\u0131n\u0131 d\u00fczenleyin:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/alanadi1.com<\/code><\/pre>\n<p><code>server<\/code> blo\u011funun i\u00e7ine, <code>location \/<\/code> blo\u011fundan sonra a\u015fa\u011f\u0131daki k\u0131sm\u0131 ekleyin:<\/p>\n<pre><code class=\"language-nginx\"># ... mevcut location \/ blo\u011fundan sonra\n\n    location ~ \\.php$ {\n        include snippets\/fastcgi-php.conf; # E\u011fer varsa, yoksa a\u015fa\u011f\u0131daki sat\u0131rlar\u0131 kullan\u0131n\n        # fastcgi_pass unix:\/var\/run\/php5-fpm.sock; # Ubuntu 14.04 i\u00e7in varsay\u0131lan soket\n        # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n        # include fastcgi_params;\n\n        # E\u011fer snippets\/fastcgi-php.conf yoksa, a\u015fa\u011f\u0131daki sat\u0131rlar\u0131 kullan\u0131n:\n        fastcgi_split_path_info ^(.+\\.php)(\/.+)$;\n        fastcgi_pass unix:\/var\/run\/php5-fpm.sock; # veya 127.0.0.1:9000\n        fastcgi_index index.php;\n        include fastcgi_params;\n    }<\/code><\/pre>\n<p>Nginx&#8217;in <code>\/etc\/nginx\/snippets\/<\/code> dizininde <code>fastcgi-php.conf<\/code> ad\u0131nda bir dosya genellikle gelir ve bu yap\u0131land\u0131rmay\u0131 i\u00e7erir. E\u011fer yoksa veya FastCGI ayarlar\u0131n\u0131 \u00f6zelle\u015ftirmek isterseniz, yorum sat\u0131r\u0131ndaki direktifleri do\u011frudan kullanabilirsiniz. <code>unix:\/var\/run\/php5-fpm.sock<\/code> yolu, PHP-FPM&#8217;in dinledi\u011fi varsay\u0131lan Unix soketidir.<\/p>\n<p>De\u011fi\u015fiklikleri kaydedin, Nginx yap\u0131land\u0131rmas\u0131n\u0131 test edin ve yeniden ba\u015flat\u0131n.<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t\nsudo service nginx restart<\/code><\/pre>\n<p>\u015eimdi <code>alanadi1.com\/info.php<\/code> gibi bir dosyaya <code><?php phpinfo(); ?><\/code> i\u00e7eri\u011fini ekleyerek PHP&#8217;nin do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 test edebilirsiniz.<\/p>\n<h4>Varsay\u0131lan Sunucu Blo\u011fu ve Catch-all<\/h4>\n<p>Nginx, gelen bir iste\u011fi hangi <code>server<\/code> blo\u011funa y\u00f6nlendirece\u011fine karar verirken <code>server_name<\/code> direktifini kullan\u0131r. E\u011fer gelen iste\u011fin <code>Host<\/code> ba\u015fl\u0131\u011f\u0131, tan\u0131ml\u0131 hi\u00e7bir <code>server_name<\/code> ile e\u015fle\u015fmezse, Nginx a\u015fa\u011f\u0131daki \u00f6ncelik s\u0131ras\u0131na g\u00f6re bir <code>server<\/code> blo\u011fu se\u00e7er:<\/p>\n<p>1.  <code>listen<\/code> direktifinde <code>default_server<\/code> anahtar kelimesiyle i\u015faretlenmi\u015f bir blok.<br \/>\n2.  <code>\/etc\/nginx\/sites-enabled\/<\/code> dizinindeki ilk <code>server<\/code> blo\u011fu (alfabetik s\u0131raya g\u00f6re).<\/p>\n<p>Bu nedenle, bilinmeyen veya istenmeyen alan adlar\u0131na y\u00f6nelik istekleri yakalamak i\u00e7in \u00f6zel bir &#8220;catch-all&#8221; veya &#8220;default_server&#8221; blo\u011funa sahip olmak iyi bir uygulamad\u0131r. Bu, yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f DNS kay\u0131tlar\u0131 veya k\u00f6t\u00fc niyetli istekler nedeniyle sitelerinizin i\u00e7eri\u011finin beklenmedik bir \u015fekilde g\u00f6r\u00fcnmesini engeller.<\/p>\n<p>Varsay\u0131lan <code>default<\/code> dosyas\u0131n\u0131 d\u00fczenleyerek veya yeni bir tane olu\u015fturarak bunu yapabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/default<\/code><\/pre>\n<p>\u0130\u00e7eri\u011fi a\u015fa\u011f\u0131daki gibi de\u011fi\u015ftirerek bo\u015f bir 444 (Nginx \u00f6zel kodu, ba\u011flant\u0131y\u0131 kapat\u0131r) yan\u0131t\u0131 d\u00f6nd\u00fcrebilirsiniz:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80 default_server;\n    listen [::]:80 default_server ipv6only=on;\n\n    server_name _; # Herhangi bir alan ad\u0131n\u0131 e\u015fle\u015ftirir\n\n    return 444; # Ba\u011flant\u0131y\u0131 kapat\u0131r\n}<\/code><\/pre>\n<p>Veya belirli bir hata sayfas\u0131 g\u00f6sterebilirsiniz:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80 default_server;\n    listen [::]:80 default_server ipv6only=on;\n\n    server_name _;\n\n    root \/var\/www\/default_site\/html; # Varsay\u0131lan hata sayfas\u0131 i\u00e7in bir dizin\n    index index.html;\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n}<\/code><\/pre>\n<p>Bu durumda, <code>\/var\/www\/default_site\/html<\/code> dizinini olu\u015fturup i\u00e7ine bir <code>index.html<\/code> dosyas\u0131 koyman\u0131z gerekir.<\/p>\n<h4>Y\u00f6nlendirmeler (Redirections)<\/h4>\n<p>Nginx, URL y\u00f6nlendirmeleri yapmak i\u00e7in olduk\u00e7a etkilidir. En yayg\u0131n kullan\u0131mlardan baz\u0131lar\u0131, <code>www<\/code> \u00f6nekli alan ad\u0131n\u0131 <code>www<\/code> \u00f6neki olmayana veya HTTP&#8217;den HTTPS&#8217;ye y\u00f6nlendirmektir.<\/p>\n<p><strong>WWW&#8217;den Non-WWW&#8217;ye Y\u00f6nlendirme:<\/strong><br \/>\n<code>www.alanadi1.com<\/code> adresinden <code>alanadi1.com<\/code> adresine y\u00f6nlendirmek i\u00e7in, <code>alanadi1.com<\/code> sunucu blo\u011funun i\u00e7ine veya ayr\u0131 bir blo\u011fa a\u015fa\u011f\u0131daki gibi bir yap\u0131land\u0131rma ekleyebilirsiniz:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    listen [::]:80;\n    server_name www.alanadi1.com;\n    return 301 http:\/\/alanadi1.com$request_uri;\n}\n\nserver {\n    listen 80;\n    listen [::]:80;\n    server_name alanadi1.com;\n    # ... ana site yap\u0131land\u0131rmas\u0131 ...\n}<\/code><\/pre>\n<p>Bu, <code>www.alanadi1.com<\/code> adresine gelen t\u00fcm istekleri kal\u0131c\u0131 olarak <code>alanadi1.com<\/code> adresine y\u00f6nlendirecektir. <code>$request_uri<\/code> de\u011fi\u015fkeni, orijinal iste\u011fin tam URI&#8217;sini korur.<\/p>\n<p><strong>HTTP&#8217;den HTTPS&#8217;ye Y\u00f6nlendirme:<\/strong><br \/>\nSSL\/TLS sertifikas\u0131 kurduktan sonra (bu makalenin kapsam\u0131 d\u0131\u015f\u0131nda olsa da), HTTP \u00fczerinden gelen t\u00fcm istekleri HTTPS&#8217;ye y\u00f6nlendirmek istersiniz.<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    listen [::]:80;\n    server_name alanadi1.com www.alanadi1.com;\n    return 301 https:\/\/$host$request_uri;\n}\n\nserver {\n    listen 443 ssl;\n    listen [::]:443 ssl;\n    server_name alanadi1.com www.alanadi1.com;\n    # ... HTTPS yap\u0131land\u0131rmas\u0131 ...\n}<\/code><\/pre>\n<h4>Hata Sayfalar\u0131 (Custom Error Pages)<\/h4>\n<p>Nginx&#8217;in varsay\u0131lan hata sayfalar\u0131 olduk\u00e7a sade ve bilgilendirici de\u011fildir. Kendi \u00f6zel hata sayfalar\u0131n\u0131z\u0131 olu\u015fturarak kullan\u0131c\u0131 deneyimini iyile\u015ftirebilirsiniz. Yukar\u0131daki \u00f6rneklerde <code>error_page<\/code> direktifini zaten kullanm\u0131\u015ft\u0131k.<\/p>\n<p>\u00d6rne\u011fin, 404 hatalar\u0131 i\u00e7in <code>\/404.html<\/code> dosyas\u0131n\u0131, 5xx hatalar\u0131 i\u00e7in <code>\/50x.html<\/code> dosyas\u0131n\u0131 kullanmak i\u00e7in:<\/p>\n<pre><code class=\"language-nginx\">server {\n    # ...\n    error_page 404 \/404.html;\n    location = \/404.html {\n        root \/var\/www\/alanadi1.com\/html; # Hata sayfas\u0131n\u0131n bulundu\u011fu dizin\n        internal; # Bu URL'ye do\u011frudan eri\u015fimi engeller\n    }\n\n    error_page 500 502 503 504 \/50x.html;\n    location = \/50x.html {\n        root \/var\/www\/alanadi1.com\/html;\n        internal;\n    }\n    # ...\n}<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rma ile, Nginx belirtilen hata kodlar\u0131 i\u00e7in <code>root<\/code> dizininde <code>404.html<\/code> veya <code>50x.html<\/code> dosyalar\u0131n\u0131 arayacakt\u0131r. <code>internal<\/code> direktifi, bu sayfalara do\u011frudan bir taray\u0131c\u0131dan eri\u015filmesini engeller, sadece Nginx&#8217;in kendisi taraf\u0131ndan \u00e7a\u011fr\u0131labilir.<\/p>\n<h3>G\u00fcvenlik ve Performans \u0130pu\u00e7lar\u0131<\/h3>\n<p>Nginx sunucu bloklar\u0131n\u0131z\u0131 kurarken ve y\u00f6netirken, g\u00fcvenlik ve performans\u0131 art\u0131racak baz\u0131 iyi uygulamalar\u0131 g\u00f6z \u00f6n\u00fcnde bulundurmal\u0131s\u0131n\u0131z.<\/p>\n<h4>Dizin \u0130zinleri<\/h4>\n<p>Web sitesi dosyalar\u0131n\u0131z\u0131n dizin izinlerini her zaman do\u011fru ayarlay\u0131n. Nginx&#8217;in <code>www-data<\/code> kullan\u0131c\u0131s\u0131 ve grubu alt\u0131nda \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 unutmay\u0131n. Dosyalar i\u00e7in <code>644<\/code>, dizinler i\u00e7in <code>755<\/code> izinleri genellikle g\u00fcvenli ve yeterlidir. Sadece Nginx&#8217;in yazmas\u0131 gereken dizinlere (\u00f6rne\u011fin, y\u00fckleme dizinleri) daha geni\u015f izinler vermelisiniz, ancak bu durumda bile dikkatli olun.<\/p>\n<h4>G\u00fcvenlik Ba\u015fl\u0131klar\u0131<\/h4>\n<p>HTTP g\u00fcvenlik ba\u015fl\u0131klar\u0131n\u0131 (X-Frame-Options, X-Content-Type-Options, X-XSS-Protection, Referrer-Policy, Strict-Transport-Security) ekleyerek web sitenizin g\u00fcvenli\u011fini art\u0131rabilirsiniz. Bu ba\u015fl\u0131klar genellikle <code>nginx.conf<\/code> veya <code>\/etc\/nginx\/snippets\/<\/code> alt\u0131ndaki bir dosyaya eklenir ve sunucu bloklar\u0131nda <code>include<\/code> edilir.<\/p>\n<p>\u00d6rnek:<\/p>\n<pre><code class=\"language-nginx\">add_header X-Frame-Options \"SAMEORIGIN\";\nadd_header X-Content-Type-Options \"nosniff\";\nadd_header X-XSS-Protection \"1; mode=block\";<\/code><\/pre>\n<h4>Gzip S\u0131k\u0131\u015ft\u0131rma<\/h4>\n<p>Gzip s\u0131k\u0131\u015ft\u0131rmay\u0131 etkinle\u015ftirerek web sitenizin y\u00fcklenme s\u00fcrelerini \u00f6nemli \u00f6l\u00e7\u00fcde azaltabilirsiniz. Bu genellikle <code>\/etc\/nginx\/nginx.conf<\/code> dosyas\u0131nda veya bir snippet dosyas\u0131nda yap\u0131l\u0131r:<\/p>\n<pre><code class=\"language-nginx\">gzip on;\ngzip_vary on;\ngzip_proxied any;\ngzip_comp_level 6;\ngzip_buffers 16 8k;\ngzip_http_version 1.1;\ngzip_types text\/plain text\/css application\/json application\/javascript text\/xml application\/xml application\/xml+rss text\/javascript;<\/code><\/pre>\n<h4>Taray\u0131c\u0131 \u00d6nbellekleme (Browser Caching)<\/h4>\n<p>Statik dosyalar (CSS, JS, resimler) i\u00e7in taray\u0131c\u0131 \u00f6nbelleklemesini yap\u0131land\u0131rmak, tekrarlayan ziyaret\u00e7iler i\u00e7in performans\u0131 art\u0131r\u0131r. Bu, <code>expires<\/code> direktifi ile yap\u0131l\u0131r:<\/p>\n<pre><code class=\"language-nginx\">location ~* \\.(jpg|jpeg|gif|png|css|js|ico|woff|woff2|ttf|svg)$ {\n    expires 365d;\n    add_header Cache-Control \"public, no-transform\";\n}<\/code><\/pre>\n<p>Bu, belirtilen dosya t\u00fcrleri i\u00e7in taray\u0131c\u0131lara 365 g\u00fcn boyunca \u00f6nbellekte tutmalar\u0131 talimat\u0131n\u0131 verir.<\/p>\n<h4>Log Kay\u0131tlar\u0131<\/h4>\n<p>Her sunucu blo\u011fu i\u00e7in ayr\u0131 eri\u015fim ve hata g\u00fcnl\u00fckleri tutmak, sorun giderme ve trafik analizi i\u00e7in \u00e7ok faydal\u0131d\u0131r. Yukar\u0131daki \u00f6rneklerde bunu zaten yap\u0131land\u0131rm\u0131\u015ft\u0131k. G\u00fcnl\u00fcklerin boyutunu d\u00fczenli olarak kontrol etmeyi ve logrotate ile y\u00f6netmeyi unutmay\u0131n.<\/p>\n<h3>Sorun Giderme ve Yayg\u0131n Hatalar<\/h3>\n<p>Nginx yap\u0131land\u0131rmalar\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz baz\u0131 yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcmleri:<\/p>\n<h4><code>nginx -t<\/code> Hatalar\u0131<\/h4>\n<p>En yayg\u0131n sorun, yap\u0131land\u0131rma dosyas\u0131ndaki s\u00f6zdizimi hatalar\u0131d\u0131r. <code>nginx -t<\/code> komutu, hatan\u0131n tam konumunu ve a\u00e7\u0131klamas\u0131n\u0131 verir. Hata mesaj\u0131n\u0131 dikkatlice okuyun ve belirtilen sat\u0131r\u0131 kontrol edin.<\/p>\n<h4>DNS Problemleri<\/h4>\n<p>Alan ad\u0131n\u0131z\u0131n sunucunuzun IP adresine do\u011fru \u015fekilde i\u015faret etmedi\u011fi durumlarda, taray\u0131c\u0131n\u0131z &#8220;Siteye ula\u015f\u0131lam\u0131yor&#8221; veya benzeri bir hata verecektir. <code>dig alanadi1.com<\/code> veya <code>ping alanadi1.com<\/code> komutlar\u0131yla DNS kay\u0131tlar\u0131n\u0131z\u0131 kontrol edin.<\/p>\n<h4>Dizin \u0130zinleri<\/h4>\n<p>E\u011fer Nginx, web sitenizin dosyalar\u0131na eri\u015femiyorsa, 403 Forbidden hatas\u0131 al\u0131rs\u0131n\u0131z. Bu genellikle yanl\u0131\u015f dosya veya dizin izinlerinden kaynaklan\u0131r. <code>chown<\/code> ve <code>chmod<\/code> komutlar\u0131yla izinleri kontrol edin ve d\u00fczeltin.<\/p>\n<h4>Nginx Servisi \u00c7al\u0131\u015fm\u0131yor<\/h4>\n<p><code>sudo service nginx status<\/code> komutuyla Nginx servisinin durumunu kontrol edin. E\u011fer \u00e7al\u0131\u015fm\u0131yorsa, <code>sudo service nginx start<\/code> komutuyla ba\u015flatmay\u0131 deneyin. Hata g\u00fcnl\u00fcklerini (<code>\/var\/log\/nginx\/error.log<\/code>) kontrol ederek ba\u015flatma sorunlar\u0131n\u0131n nedenini bulabilirsiniz.<\/p>\n<h4>Varsay\u0131lan Sayfa G\u00f6r\u00fcn\u00fcyor<\/h4>\n<p>Yeni sunucu blo\u011funuzu ziyaret etti\u011finizde hala &#8220;Welcome to Nginx!&#8221; varsay\u0131lan sayfas\u0131n\u0131 g\u00f6r\u00fcyorsan\u0131z:<br \/>\n*   <code>server_name<\/code> direktifinizin do\u011fru alan adlar\u0131n\u0131 i\u00e7erdi\u011finden emin olun.<br \/>\n*   <code>\/etc\/nginx\/sites-enabled\/<\/code> dizininde yeni sunucu blo\u011funuz i\u00e7in bir sembolik ba\u011flant\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol edin.<br \/>\n*   Nginx&#8217;i yeniden ba\u015flatt\u0131\u011f\u0131n\u0131zdan emin olun (<code>sudo service nginx restart<\/code>).<br \/>\n*   Taray\u0131c\u0131n\u0131z\u0131n \u00f6nbelle\u011fini temizlemeyi deneyin.<\/p>\n<h4>Cache Sorunlar\u0131<\/h4>\n<p>Yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin taray\u0131c\u0131n\u0131zda g\u00f6r\u00fcnmemesi durumunda, taray\u0131c\u0131n\u0131z\u0131n \u00f6nbelle\u011fini temizlemeyi deneyin (Ctrl+F5 veya Shift+F5). Ayr\u0131ca, Nginx veya ba\u015fka bir proxy sunucu seviyesinde \u00f6nbellekleme yap\u0131l\u0131yorsa, bu \u00f6nbellekleri de temizlemeniz gerekebilir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, Ubuntu 14.04 LTS \u00fczerinde Nginx sunucu bloklar\u0131n\u0131n (sanal hostlar) nas\u0131l kurulaca\u011f\u0131n\u0131 ve yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ayr\u0131nt\u0131l\u0131 bir \u015fekilde ele ald\u0131k. Tek bir sunucuda birden fazla web sitesi bar\u0131nd\u0131rma yetene\u011fi, Nginx&#8217;in esnekli\u011fi ve g\u00fcc\u00fcn\u00fcn temel bir g\u00f6stergesidir. Alan adlar\u0131 i\u00e7in dizin yap\u0131s\u0131 olu\u015fturmaktan, sunucu blo\u011fu yap\u0131land\u0131rma dosyalar\u0131n\u0131 yazmaya, PHP deste\u011fi eklemeye ve y\u00f6nlendirmeler yapmaya kadar t\u00fcm ad\u0131mlar\u0131 \u00f6\u011frendiniz.<\/p>\n<p>Nginx&#8217;in mod\u00fcler yap\u0131land\u0131rma felsefesi, sitelerinizi d\u00fczenli tutman\u0131z\u0131 ve y\u00f6netmenizi kolayla\u015ft\u0131r\u0131r. G\u00fcvenlik ba\u015fl\u0131klar\u0131, gzip s\u0131k\u0131\u015ft\u0131rma ve taray\u0131c\u0131 \u00f6nbellekleme gibi performans ve g\u00fcvenlik ipu\u00e7lar\u0131n\u0131 uygulayarak web sitelerinizin hem daha h\u0131zl\u0131 hem de daha g\u00fcvenli olmas\u0131n\u0131 sa\u011flayabilirsiniz.<\/p>\n<p>Unutmay\u0131n ki web sunucusu y\u00f6netimi s\u00fcrekli \u00f6\u011frenme ve pratik gerektiren bir aland\u0131r. Bu bilgilerle donanm\u0131\u015f olarak, Nginx ile web bar\u0131nd\u0131rma deneyiminizi bir \u00fcst seviyeye ta\u015f\u0131yabilirsiniz. Daha fazla ke\u015ffetmek isterseniz, HTTPS (SSL\/TLS) yap\u0131land\u0131rmas\u0131, ileri d\u00fczey \u00f6nbellekleme, y\u00fck dengeleme ve Nginx&#8217;in di\u011fer g\u00fc\u00e7l\u00fc \u00f6zelliklerini ara\u015ft\u0131rman\u0131z\u0131 \u015fiddetle tavsiye ederiz. Sunucunuzu d\u00fczenli olarak g\u00fcncel tutmak ve g\u00fcvenlik yamalar\u0131n\u0131 uygulamak da her zaman \u00f6nemlidir.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Ubuntu 14.04 LTS \u00dczerine Nas\u0131l Kurulur?\nModern web bar\u0131nd\u0131rma d\u00fcnyas\u0131nda, tek bir sunucu \u00fczerinde birde","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-33678","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 Sunucu Bloklar\u0131 (Sanal Hostlar) Ubuntu 14.04 LTS \u00dczerine Nas\u0131l Kurulur? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\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-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Ubuntu 14.04 LTS \u00dczerine Nas\u0131l Kurulur?\" \/>\n<meta property=\"og:description\" content=\"Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Ubuntu 14.04 LTS \u00dczerine Nas\u0131l Kurulur? Modern web bar\u0131nd\u0131rma d\u00fcnyas\u0131nda, tek bir sunucu \u00fczerinde birde\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-05T17:40:50+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=\"18 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Ubuntu 14.04 LTS \u00dczerine Nas\u0131l Kurulur?\",\"datePublished\":\"2025-11-05T17:40:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/\"},\"wordCount\":2720,\"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-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/\",\"name\":\"Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Ubuntu 14.04 LTS \u00dczerine Nas\u0131l Kurulur? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-05T17:40:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Ubuntu 14.04 LTS \u00dczerine Nas\u0131l Kurulur?\"}]},{\"@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 Sunucu Bloklar\u0131 (Sanal Hostlar) Ubuntu 14.04 LTS \u00dczerine Nas\u0131l Kurulur? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","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-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/","og_locale":"tr_TR","og_type":"article","og_title":"Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Ubuntu 14.04 LTS \u00dczerine Nas\u0131l Kurulur?","og_description":"Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Ubuntu 14.04 LTS \u00dczerine Nas\u0131l Kurulur? Modern web bar\u0131nd\u0131rma d\u00fcnyas\u0131nda, tek bir sunucu \u00fczerinde birde","og_url":"https:\/\/fatihsoysal.com\/blog\/nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-05T17:40:50+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"18 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Ubuntu 14.04 LTS \u00dczerine Nas\u0131l Kurulur?","datePublished":"2025-11-05T17:40:50+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/"},"wordCount":2720,"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-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/","url":"https:\/\/fatihsoysal.com\/blog\/nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/","name":"Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Ubuntu 14.04 LTS \u00dczerine Nas\u0131l Kurulur? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-05T17:40:50+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/nginx-sunucu-bloklari-sanal-hostlar-ubuntu-14-04-lts-uzerine-nasil-kurulur\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Ubuntu 14.04 LTS \u00dczerine Nas\u0131l Kurulur?"}]},{"@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\/33678","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=33678"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33678\/revisions"}],"predecessor-version":[{"id":33679,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33678\/revisions\/33679"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33678"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33678"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}