{"id":38489,"date":"2026-02-01T11:40:56","date_gmt":"2026-02-01T08:40:56","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=38489"},"modified":"2026-02-01T11:40:56","modified_gmt":"2026-02-01T08:40:56","slug":"ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/","title":{"rendered":"Ubuntu 16.04 \u00dczerinde Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Kurulumu ve Yap\u0131land\u0131rmas\u0131"},"content":{"rendered":"<p><body><\/p>\n<h2>Ubuntu 16.04 \u00dczerinde Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn dinamik web ortam\u0131nda, tek bir sunucu \u00fczerinde birden fazla web sitesini bar\u0131nd\u0131rmak yayg\u0131n bir gereksinimdir. Bu, sunucu kaynaklar\u0131n\u0131n daha verimli kullan\u0131lmas\u0131na olanak tan\u0131r ve maliyetleri d\u00fc\u015f\u00fcr\u00fcr. Nginx, y\u00fcksek performansl\u0131, hafif ve esnek bir web sunucusu olarak bu ihtiyac\u0131 kar\u015f\u0131lamak i\u00e7in &#8220;sunucu bloklar\u0131&#8221; (server blocks) ad\u0131 verilen bir mekanizma sunar. Apache&#8217;deki sanal hostlara benzer \u015fekilde, Nginx sunucu bloklar\u0131, ayn\u0131 IP adresi ve port \u00fczerinde farkl\u0131 alan adlar\u0131 i\u00e7in ayr\u0131 web siteleri yap\u0131land\u0131rman\u0131za olanak tan\u0131r.<\/p>\n<p>Bu kapsaml\u0131 teknik makalede, Ubuntu 16.04 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 inceleyece\u011fiz. Ubuntu 16.04, uzun s\u00fcreli destek (LTS) s\u00fcr\u00fcm\u00fc olmas\u0131 nedeniyle bir\u00e7ok \u00fcretim ortam\u0131nda hala kullan\u0131lmaktad\u0131r ve Nginx yap\u0131land\u0131rma prensipleri bu s\u00fcr\u00fcmde de ge\u00e7erlidir. Makale boyunca, temel bir sunucu blo\u011fu olu\u015fturmaktan, birden fazla siteyi yap\u0131land\u0131rmaya, SSL\/TLS entegrasyonuna ve yayg\u0131n sorun giderme y\u00f6ntemlerine kadar bir\u00e7ok konuyu ele alaca\u011f\u0131z. Amac\u0131m\u0131z, Nginx ile sanal hostlar\u0131 y\u00f6netme konusunda size sa\u011flam bir temel sa\u011flamakt\u0131r.<\/p>\n<h3>\u00d6n Ko\u015fullar<\/h3>\n<p>Bu makaledeki ad\u0131mlar\u0131 takip edebilmek i\u00e7in a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n yerine getirilmi\u015f olmas\u0131 gerekmektedir:<\/p>\n<p>*   <strong>Ubuntu 16.04 Sunucusu:<\/strong> SSH eri\u015fimi olan bir Ubuntu 16.04 sunucusuna sahip olman\u0131z gerekmektedir.<br \/>\n*   <strong>Root veya Sudo Yetkileri:<\/strong> Sunucuda komutlar\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in <code>root<\/code> kullan\u0131c\u0131s\u0131 olman\u0131z veya <code>sudo<\/code> yetkilerine sahip bir kullan\u0131c\u0131 hesab\u0131n\u0131z\u0131n bulunmas\u0131.<br \/>\n*   <strong>Nginx Kurulumu:<\/strong> Nginx&#8217;in sunucunuza kurulu olmas\u0131. E\u011fer kurulu de\u011filse, sonraki b\u00f6l\u00fcmde nas\u0131l kurulaca\u011f\u0131n\u0131 anlataca\u011f\u0131z.<br \/>\n*   <strong>Alan Adlar\u0131 (Opsiyonel ama \u00d6nerilir):<\/strong> Yap\u0131land\u0131rmak istedi\u011finiz her web sitesi i\u00e7in bir veya daha fazla kay\u0131tl\u0131 alan ad\u0131n\u0131z\u0131n olmas\u0131 ve bu alan adlar\u0131n\u0131n DNS kay\u0131tlar\u0131n\u0131n sunucunuzun IP adresine y\u00f6nlendirilmi\u015f olmas\u0131 (A kayd\u0131). Test ama\u00e7l\u0131 olarak alan adlar\u0131 olmadan da ilerlenebilir, ancak ger\u00e7ek d\u00fcnya senaryolar\u0131 i\u00e7in alan adlar\u0131 gereklidir.<br \/>\n*   <strong>Temel Linux Komut Bilgisi:<\/strong> <code>nano<\/code> veya <code>vi<\/code> gibi metin d\u00fczenleyicileri kullanma ve temel dosya sistemi komutlar\u0131 hakk\u0131nda bilgi sahibi olmak.<\/p>\n<h3>Nginx Kurulumu (E\u011fer Kurulmad\u0131ysa)<\/h3>\n<p>E\u011fer Nginx sunucunuzda hen\u00fcz kurulu de\u011filse, a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyerek kolayca kurabilirsiniz.<\/p>\n<p>1.  <strong>Paket Listesini G\u00fcncelleme:<\/strong><br \/>\n    \u0130lk olarak, sunucunuzdaki paket listesini g\u00fcncelleyerek en son yaz\u0131l\u0131m bilgilerini edinin:<\/p>\n<pre><code class=\"language-bash\">sudo apt update<\/code><\/pre>\n<p>2.  <strong>Nginx&#8217;i Kurma:<\/strong><br \/>\n    G\u00fcncelleme tamamland\u0131ktan sonra, Nginx paketini kurun:<\/p>\n<pre><code class=\"language-bash\">sudo apt install nginx<\/code><\/pre>\n<p>    Kurulum s\u0131ras\u0131nda sizden onay istenirse <code>Y<\/code> tu\u015funa bas\u0131p Enter&#8217;a bas\u0131n.<\/p>\n<p>3.  <strong>Nginx Servisini Ba\u015flatma ve Etkinle\u015ftirme:<\/strong><br \/>\n    Nginx kurulumdan sonra otomatik olarak ba\u015flamayabilir. Servisi ba\u015flat\u0131n ve sunucu her yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda otomatik olarak ba\u015flamas\u0131 i\u00e7in etkinle\u015ftirin:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start nginx\n    sudo systemctl enable nginx<\/code><\/pre>\n<p>4.  <strong>G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131 (UFW):<\/strong><br \/>\n    Ubuntu&#8217;da varsay\u0131lan g\u00fcvenlik duvar\u0131 olan UFW (Uncomplicated Firewall) etkinse, Nginx&#8217;in web trafi\u011fini alabilmesi i\u00e7in HTTP ve HTTPS portlar\u0131n\u0131 a\u00e7man\u0131z gerekir.<\/p>\n<p>    Mevcut Nginx UFW profillerini listeleyin:<\/p>\n<pre><code class=\"language-bash\">sudo ufw app list<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131 a\u015fa\u011f\u0131daki gibi olacakt\u0131r:<\/p>\n<pre><code class=\"language-\">Available applications:\n      Nginx Full\n      Nginx HTTP\n      Nginx HTTPS\n      OpenSSH<\/code><\/pre>\n<p>    *   <code>Nginx HTTP<\/code>: Yaln\u0131zca 80 portunu (HTTP) a\u00e7ar.<br \/>\n    *   <code>Nginx HTTPS<\/code>: Yaln\u0131zca 443 portunu (HTTPS) a\u00e7ar.<br \/>\n    *   <code>Nginx Full<\/code>: Hem 80 hem de 443 portunu (HTTP ve HTTPS) a\u00e7ar.<\/p>\n<p>    \u015eimdilik sadece HTTP eri\u015fimine izin verelim:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 'Nginx HTTP'<\/code><\/pre>\n<p>    UFW&#8217;nin etkin oldu\u011fundan emin olun ve durumunu kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo ufw enable\n    sudo ufw status<\/code><\/pre>\n<p>    Durum \u00e7\u0131kt\u0131s\u0131nda <code>Nginx HTTP<\/code> kural\u0131n\u0131n <code>ALLOW Anywhere<\/code> olarak g\u00f6r\u00fcnd\u00fc\u011f\u00fcn\u00fc teyit edin.<\/p>\n<p>5.  <strong>Nginx&#8217;in \u00c7al\u0131\u015ft\u0131\u011f\u0131n\u0131 Do\u011frulama:<\/strong><br \/>\n    Web taray\u0131c\u0131n\u0131zdan sunucunuzun IP adresine gidin (\u00f6rne\u011fin, <code>http:\/\/sizin_ip_adresiniz<\/code>). Nginx&#8217;in varsay\u0131lan &#8220;Welcome to Nginx!&#8221; sayfas\u0131n\u0131 g\u00f6rmeniz gerekmektedir. Bu, Nginx&#8217;in ba\u015far\u0131yla kuruldu\u011funu ve \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<h3>Sunucu Blo\u011fu Kavram\u0131 ve Yap\u0131s\u0131<\/h3>\n<p>Nginx&#8217;te sunucu bloklar\u0131, Apache&#8217;deki sanal hostlar\u0131n kar\u015f\u0131l\u0131\u011f\u0131d\u0131r. Temel olarak, gelen bir HTTP iste\u011finin hangi web sitesine y\u00f6nlendirilece\u011fini belirleyen yap\u0131land\u0131rma par\u00e7alar\u0131d\u0131r. Her sunucu blo\u011fu, belirli bir alan ad\u0131, IP adresi ve port kombinasyonu i\u00e7in bir dizi kural tan\u0131mlar.<\/p>\n<p>Nginx&#8217;in ana yap\u0131land\u0131rma dosyas\u0131 <code>\/etc\/nginx\/nginx.conf<\/code> konumundad\u0131r. Bu dosya, <code>http<\/code> blo\u011fu i\u00e7inde <code>include<\/code> y\u00f6nergesini kullanarak ek yap\u0131land\u0131rma dosyalar\u0131n\u0131 dahil eder. Varsay\u0131lan olarak, bu y\u00f6nerge a\u015fa\u011f\u0131daki gibidir:<\/p>\n<pre><code class=\"language-nginx\">include \/etc\/nginx\/conf.d\/*.conf;\ninclude \/etc\/nginx\/sites-enabled\/*;<\/code><\/pre>\n<p>Bu, Nginx&#8217;in <code>\/etc\/nginx\/conf.d\/<\/code> dizinindeki t\u00fcm <code>.conf<\/code> uzant\u0131l\u0131 dosyalar\u0131 ve <code>\/etc\/nginx\/sites-enabled\/<\/code> dizinindeki dosyalar\u0131 okuyaca\u011f\u0131 anlam\u0131na gelir.<\/p>\n<p><strong><code>\/etc\/nginx\/sites-available\/<\/code> ve <code>\/etc\/nginx\/sites-enabled\/<\/code> Dizini:<\/strong><br \/>\n*   <strong><code>\/etc\/nginx\/sites-available\/<\/code>:<\/strong> Bu dizin, t\u00fcm sunucu blo\u011fu yap\u0131land\u0131rma dosyalar\u0131n\u0131z\u0131 saklad\u0131\u011f\u0131n\u0131z yerdir. Burada birden fazla web sitesi i\u00e7in yap\u0131land\u0131rma dosyalar\u0131 olu\u015fturabilirsiniz, ancak bu dosyalar do\u011frudan Nginx taraf\u0131ndan okunmaz.<br \/>\n*   <strong><code>\/etc\/nginx\/sites-enabled\/<\/code>:<\/strong> Bu dizin, Nginx&#8217;in ger\u00e7ekten okuyup kulland\u0131\u011f\u0131 yap\u0131land\u0131rma dosyalar\u0131n\u0131 i\u00e7erir. Bir sunucu blo\u011funu etkinle\u015ftirmek i\u00e7in, <code>sites-available<\/code> dizinindeki ilgili dosyaya bu dizinden bir sembolik ba\u011flant\u0131 (symlink) olu\u015fturman\u0131z gerekir. Bu ayr\u0131m, web sitelerini kolayca etkinle\u015ftirmenize veya devre d\u0131\u015f\u0131 b\u0131rakman\u0131za olanak tan\u0131r.<\/p>\n<p>Bir sunucu blo\u011fu temel olarak <code>server { ... }<\/code> blo\u011fu i\u00e7inde tan\u0131mlan\u0131r ve a\u015fa\u011f\u0131daki temel y\u00f6nergeleri i\u00e7erir:<\/p>\n<p>*   <strong><code>listen<\/code>:<\/strong> Nginx&#8217;in hangi IP adresi ve portu dinlemesi gerekti\u011fini belirtir. \u00c7o\u011fu zaman <code>listen 80;<\/code> (HTTP i\u00e7in) ve <code>listen 443 ssl;<\/code> (HTTPS i\u00e7in) kullan\u0131l\u0131r. IPv6 deste\u011fi i\u00e7in <code>listen [::]:80;<\/code> gibi ifadeler de eklenir.<br \/>\n<em>   <strong><code>server_name<\/code>:<\/strong> Bu sunucu blo\u011funun hangi alan adlar\u0131 i\u00e7in ge\u00e7erli oldu\u011funu belirtir. Nginx, gelen iste\u011fin <code>Host<\/code> ba\u015fl\u0131\u011f\u0131n\u0131 bu y\u00f6nergedeki de\u011ferlerle e\u015fle\u015ftirerek do\u011fru sunucu blo\u011funu bulur. Birden fazla alan ad\u0131 veya joker karakterler (<code><\/em>.alanadiniz.com<\/code>) kullanabilirsiniz.<br \/>\n*   <strong><code>root<\/code>:<\/strong> Web sitesinin dosyalar\u0131n\u0131n (HTML, CSS, JS vb.) bulundu\u011fu k\u00f6k dizini belirtir.<br \/>\n*   <strong><code>index<\/code>:<\/strong> Bir dizine yap\u0131lan istekte Nginx&#8217;in hangi dosyay\u0131 varsay\u0131lan olarak sunaca\u011f\u0131n\u0131 belirtir (\u00f6rne\u011fin, <code>index.html<\/code>, <code>index.php<\/code>).<br \/>\n*   <strong><code>location<\/code>:<\/strong> Belirli URL desenleri i\u00e7in \u00f6zel kurallar tan\u0131mlamak i\u00e7in kullan\u0131l\u0131r. \u00d6rne\u011fin, belirli bir URL&#8217;ye eri\u015fimi k\u0131s\u0131tlamak, bir uygulamaya ters proxy yapmak veya statik dosyalar\u0131 sunmak i\u00e7in.<\/p>\n<h3>\u0130lk Sunucu Blo\u011funuzu Olu\u015fturma<\/h3>\n<p>\u015eimdi <code>alanadiniz.com<\/code> ad\u0131nda hayali bir alan ad\u0131 i\u00e7in ilk Nginx sunucu blo\u011fumuzu olu\u015ftural\u0131m.<\/p>\n<h4>Dizin Yap\u0131s\u0131 Olu\u015fturma<\/h4>\n<p>Her web sitesi i\u00e7in ayr\u0131 bir dok\u00fcman k\u00f6k\u00fc (document root) olu\u015fturmak iyi bir uygulamad\u0131r. Bu, web sitelerinin dosyalar\u0131n\u0131 birbirinden izole tutar.<br \/>\n<code>alanadiniz.com<\/code> i\u00e7in bir dok\u00fcman k\u00f6k\u00fc olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/var\/www\/alanadiniz.com\/html<\/code><\/pre>\n<p>Bu komut, <code>\/var\/www\/alanadiniz.com\/html<\/code> yolunu olu\u015fturur. <code>html<\/code> dizini, web sitesinin ana dosyalar\u0131n\u0131 i\u00e7erecektir.<\/p>\n<p>Ard\u0131ndan, bu dizinin sahipli\u011fini ve izinlerini ayarlayal\u0131m. Varsay\u0131lan olarak <code>root<\/code> kullan\u0131c\u0131s\u0131 taraf\u0131ndan olu\u015fturuldu\u011fu i\u00e7in, kendi kullan\u0131c\u0131 hesab\u0131n\u0131za (\u00f6rne\u011fin <code>$USER<\/code> de\u011fi\u015fkeni ile) sahipli\u011fi vermeniz, daha sonra bu dizin i\u00e7inde dosya olu\u015fturup d\u00fczenlemenizi kolayla\u015ft\u0131r\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo chown -R $USER:$USER \/var\/www\/alanadiniz.com\/html\nsudo chmod -R 755 \/var\/www\/alanadiniz.com<\/code><\/pre>\n<p>*   <code>chown -R $USER:$USER \/var\/www\/alanadiniz.com\/html<\/code>: Bu komut, <code>\/var\/www\/alanadiniz.com\/html<\/code> dizininin ve i\u00e7indeki t\u00fcm dosyalar\u0131n sahipli\u011fini mevcut kullan\u0131c\u0131n\u0131za (<code>$USER<\/code>) ve grubuna atar.<br \/>\n*   <code>chmod -R 755 \/var\/www\/alanadiniz.com<\/code>: Bu komut, dizine ve i\u00e7indeki dosyalara okuma, yazma ve \u00e7al\u0131\u015ft\u0131rma (dizinler i\u00e7in) izinleri verir. <code>755<\/code> izinleri, sahibin tam eri\u015fime sahip oldu\u011fu, di\u011fer kullan\u0131c\u0131lar\u0131n ve gruplar\u0131n ise sadece okuma ve \u00e7al\u0131\u015ft\u0131rma iznine sahip oldu\u011fu anlam\u0131na gelir. Nginx&#8217;in web dosyalar\u0131n\u0131 okuyabilmesi i\u00e7in bu izinler gereklidir.<\/p>\n<h4>Test Sayfas\u0131 Olu\u015fturma<\/h4>\n<p>Sunucu blo\u011fumuzun do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 test etmek i\u00e7in, yeni olu\u015fturdu\u011fumuz dok\u00fcman k\u00f6k\u00fcne basit bir <code>index.html<\/code> dosyas\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/var\/www\/alanadiniz.com\/html\/index.html<\/code><\/pre>\n<p>A\u00e7\u0131lan dosyaya a\u015fa\u011f\u0131daki HTML i\u00e7eri\u011fini yap\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-html\"><!DOCTYPE html>\n<html>\n<head>\n    <title>Ho\u015f Geldiniz - alanadiniz.com<\/title>\n    <style>\n        body {\n            font-family: Arial, sans-serif;\n            background-color: #f0f0f0;\n            text-align: center;\n            padding-top: 50px;\n        }\n        h1 {\n            color: #333;\n        }\n        p {\n            color: #666;\n        }\n    <\/style>\n<\/head>\n<body>\n    \n    <p>Bu, Nginx sunucu blo\u011funuzun ba\u015far\u0131yla yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6steren bir test sayfas\u0131d\u0131r.<\/p>\n<\/body>\n<\/html><\/code><\/pre>\n<p>Dosyay\u0131 kaydedin (Ctrl+O, Enter) ve kapat\u0131n (Ctrl+X).<\/p>\n<h4>Sunucu Blo\u011fu Yap\u0131land\u0131rma Dosyas\u0131 Olu\u015fturma<\/h4>\n<p>\u015eimdi <code>alanadiniz.com<\/code> i\u00e7in yeni bir sunucu blo\u011fu yap\u0131land\u0131rma dosyas\u0131 olu\u015ftural\u0131m. Bu dosyay\u0131 <code>sites-available<\/code> dizininde tutaca\u011f\u0131z:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/alanadiniz.com<\/code><\/pre>\n<p>A\u00e7\u0131lan dosyaya a\u015fa\u011f\u0131daki yap\u0131land\u0131rmay\u0131 yap\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    listen [::]:80;\n\n    root \/var\/www\/alanadiniz.com\/html;\n    index index.html index.htm index.nginx-debian.html;\n\n    server_name alanadiniz.com www.alanadiniz.com;\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n\n    # Hata sayfalar\u0131 i\u00e7in \u00f6zel yap\u0131land\u0131rmalar (iste\u011fe ba\u011fl\u0131)\n    error_page 404 \/404.html;\n    location = \/404.html {\n        internal;\n    }\n\n    # G\u00fcvenlik i\u00e7in sunucu s\u00fcr\u00fcm\u00fcn\u00fc gizle (\u00f6nerilir)\n    server_tokens off;\n}<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rmay\u0131 inceleyelim:<\/p>\n<p>*   <strong><code>listen 80;<\/code> ve <code>listen [::]:80;<\/code><\/strong>: Nginx&#8217;in hem IPv4 hem de IPv6 adreslerinde 80 numaral\u0131 portu (standart HTTP portu) dinlemesini sa\u011flar.<br \/>\n*   <strong><code>root \/var\/www\/alanadiniz.com\/html;<\/code><\/strong>: Bu sunucu blo\u011fu i\u00e7in web sitesi dosyalar\u0131n\u0131n k\u00f6k dizinini belirtir.<br \/>\n*   <strong><code>index index.html index.htm index.nginx-debian.html;<\/code><\/strong>: Bir dizine yap\u0131lan istekte (\u00f6rne\u011fin <code>http:\/\/alanadiniz.com\/<\/code>) Nginx&#8217;in bu listedeki dosyalar\u0131 s\u0131ras\u0131yla aramas\u0131n\u0131 sa\u011flar. Buldu\u011fu ilk dosyay\u0131 sunar.<br \/>\n*   <strong><code>server_name alanadiniz.com www.alanadiniz.com;<\/code><\/strong>: Bu, Nginx&#8217;in gelen iste\u011fin <code>Host<\/code> ba\u015fl\u0131\u011f\u0131n\u0131 kontrol etti\u011fi alan adlar\u0131d\u0131r. E\u011fer gelen istek <code>alanadiniz.com<\/code> veya <code>www.alanadiniz.com<\/code> i\u00e7inse, bu sunucu blo\u011fu kullan\u0131lacakt\u0131r. Birden fazla alan ad\u0131 virg\u00fclle ayr\u0131l\u0131r.<br \/>\n*   <strong><code>location \/ { ... }<\/code><\/strong>: K\u00f6k URL&#8217;ye (<code>\/<\/code>) yap\u0131lan t\u00fcm istekler i\u00e7in ge\u00e7erli olan bir <code>location<\/code> blo\u011fudur.<br \/>\n    *   <strong><code>try_files $uri $uri\/ =404;<\/code><\/strong>: Bu y\u00f6nerge \u00e7ok \u00f6nemlidir. Gelen iste\u011fe kar\u015f\u0131l\u0131k gelen bir dosya (<code>$uri<\/code>) veya dizin (<code>$uri\/<\/code>) olup olmad\u0131\u011f\u0131n\u0131 kontrol eder. E\u011fer bulunamazsa, 404 hatas\u0131 d\u00f6nd\u00fcr\u00fcr. Bu, temiz URL&#8217;ler ve dosya bulunamad\u0131\u011f\u0131nda do\u011fru davran\u0131\u015f i\u00e7in kullan\u0131l\u0131r.<br \/>\n*   <strong><code>error_page 404 \/404.html;<\/code><\/strong>: \u0130ste\u011fe ba\u011fl\u0131 olarak, 404 hatas\u0131 durumunda <code>404.html<\/code> dosyas\u0131n\u0131 g\u00f6stermesini sa\u011flar.<br \/>\n*   <strong><code>server_tokens off;<\/code><\/strong>: Nginx&#8217;in hata sayfalar\u0131nda veya HTTP yan\u0131t ba\u015fl\u0131klar\u0131nda Nginx s\u00fcr\u00fcm numaras\u0131n\u0131 g\u00f6stermesini engeller. Bu, potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 gizlemek i\u00e7in iyi bir uygulamad\u0131r.<\/p>\n<p>Dosyay\u0131 kaydedin ve kapat\u0131n.<\/p>\n<h4>Sunucu Blo\u011funu Etkinle\u015ftirme<\/h4>\n<p>Olu\u015fturdu\u011fumuz sunucu blo\u011fu dosyas\u0131 \u015fu anda <code>sites-available<\/code> dizininde bulunuyor ve Nginx taraf\u0131ndan okunmuyor. Onu etkinle\u015ftirmek i\u00e7in, <code>sites-enabled<\/code> dizinine sembolik bir ba\u011flant\u0131 olu\u015fturmam\u0131z gerekiyor:<\/p>\n<pre><code class=\"language-bash\">sudo ln -s \/etc\/nginx\/sites-available\/alanadiniz.com \/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n<p>Bu komut, <code>alanadiniz.com<\/code> yap\u0131land\u0131rma dosyas\u0131n\u0131n bir k\u0131sayolunu <code>sites-enabled<\/code> dizinine yerle\u015ftirir.<\/p>\n<h4>Nginx Yap\u0131land\u0131rmas\u0131n\u0131 Test Etme ve Yeniden Y\u00fckleme<\/h4>\n<p>Yeni yap\u0131land\u0131rmay\u0131 uygulamadan \u00f6nce, herhangi bir s\u00f6zdizimi hatas\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek her zaman iyi bir fikirdir:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t<\/code><\/pre>\n<p>E\u011fer her \u015fey yolundaysa, a\u015fa\u011f\u0131daki gibi 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, Nginx size hatan\u0131n nerede oldu\u011funu s\u00f6yleyecektir. Hatalar\u0131 d\u00fczelttikten sonra tekrar test edin.<\/p>\n<p>Yap\u0131land\u0131rma testi ba\u015far\u0131l\u0131 olduktan sonra, Nginx&#8217;i yeniden y\u00fckleyerek de\u011fi\u015fiklikleri uygulay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl reload nginx<\/code><\/pre>\n<p><code>reload<\/code> komutu, Nginx&#8217;in \u00e7al\u0131\u015fan servisleri kesintiye u\u011fratmadan yeni yap\u0131land\u0131rmay\u0131 y\u00fcklemesini sa\u011flar.<\/p>\n<h4>Sonucu Taray\u0131c\u0131da Kontrol Etme<\/h4>\n<p>\u015eimdi web taray\u0131c\u0131n\u0131z\u0131 a\u00e7\u0131n ve <code>http:\/\/alanadiniz.com<\/code> adresine gidin. E\u011fer alan ad\u0131n\u0131z\u0131n DNS kay\u0131tlar\u0131 sunucunuzun IP adresine do\u011fru \u015fekilde y\u00f6nlendirilmi\u015fse, az \u00f6nce olu\u015fturdu\u011funuz &#8220;alanadiniz.com&#8217;a Ho\u015f Geldiniz!&#8221; sayfas\u0131n\u0131 g\u00f6rmeniz gerekir.<\/p>\n<h3>\u0130kinci Bir Sunucu Blo\u011fu Olu\u015fturma<\/h3>\n<p>Tek bir sunucuda birden fazla web sitesi bar\u0131nd\u0131rman\u0131n temel amac\u0131 budur. \u015eimdi <code>ikincialanadiniz.com<\/code> ad\u0131nda ikinci bir alan ad\u0131 i\u00e7in benzer ad\u0131mlar\u0131 izleyerek bir sunucu blo\u011fu olu\u015ftural\u0131m.<\/p>\n<p>1.  <strong>Dizin Yap\u0131s\u0131 Olu\u015fturma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/var\/www\/ikincialanadiniz.com\/html\n    sudo chown -R $USER:$USER \/var\/www\/ikincialanadiniz.com\/html\n    sudo chmod -R 755 \/var\/www\/ikincialanadiniz.com<\/code><\/pre>\n<p>2.  <strong>Test Sayfas\u0131 Olu\u015fturma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo nano \/var\/www\/ikincialanadiniz.com\/html\/index.html<\/code><\/pre>\n<p>    \u0130\u00e7eri\u011fi a\u015fa\u011f\u0131daki gibi de\u011fi\u015ftirin:<\/p>\n<pre><code class=\"language-html\"><!DOCTYPE html>\n    <html>\n    <head>\n        <title>Ho\u015f Geldiniz - ikincialanadiniz.com<\/title>\n        <style>\n            body {\n                font-family: Arial, sans-serif;\n                background-color: #e0f7fa;\n                text-align: center;\n                padding-top: 50px;\n            }\n            h1 {\n                color: #00796b;\n            }\n            p {\n                color: #4db6ac;\n            }\n        <\/style>\n    <\/head>\n    <body>\n        \n        <p>Bu, ikinci Nginx sunucu blo\u011funuzun ba\u015far\u0131yla yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6steren bir test sayfas\u0131d\u0131r.<\/p>\n    <\/body>\n    <\/html><\/code><\/pre>\n<p>    Kaydedin ve kapat\u0131n.<\/p>\n<p>3.  <strong>Sunucu Blo\u011fu Yap\u0131land\u0131rma Dosyas\u0131 Olu\u015fturma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/ikincialanadiniz.com<\/code><\/pre>\n<p>    A\u015fa\u011f\u0131daki yap\u0131land\u0131rmay\u0131 ekleyin:<\/p>\n<pre><code class=\"language-nginx\">server {\n        listen 80;\n        listen [::]:80;\n\n        root \/var\/www\/ikincialanadiniz.com\/html;\n        index index.html index.htm index.nginx-debian.html;\n\n        server_name ikincialanadiniz.com www.ikincialanadiniz.com;\n\n        location \/ {\n            try_files $uri $uri\/ =404;\n        }\n\n        error_page 404 \/404.html;\n        location = \/404.html {\n            internal;\n        }\n\n        server_tokens off;\n    }<\/code><\/pre>\n<p>    Kaydedin ve kapat\u0131n.<\/p>\n<p>4.  <strong>Sunucu Blo\u011funu Etkinle\u015ftirme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ln -s \/etc\/nginx\/sites-available\/ikincialanadiniz.com \/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n<p>5.  <strong>Nginx Yap\u0131land\u0131rmas\u0131n\u0131 Test Etme ve Yeniden Y\u00fckleme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo nginx -t\n    sudo systemctl reload nginx<\/code><\/pre>\n<p>6.  <strong>Sonucu Taray\u0131c\u0131da Kontrol Etme:<\/strong><br \/>\n    Taray\u0131c\u0131n\u0131zdan <code>http:\/\/ikincialanadiniz.com<\/code> adresine gidin ve ikinci web sitenizin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulay\u0131n.<\/p>\n<p>Bu ad\u0131mlarla, ayn\u0131 sunucu \u00fczerinde iki farkl\u0131 alan ad\u0131 i\u00e7in iki ayr\u0131 web sitesini ba\u015far\u0131yla yap\u0131land\u0131rm\u0131\u015f oldunuz. Her bir sunucu blo\u011fu tamamen ba\u011f\u0131ms\u0131zd\u0131r ve kendi k\u00f6k dizini, yap\u0131land\u0131rmas\u0131 ve alan adlar\u0131na sahiptir.<\/p>\n<h3>Varsay\u0131lan Sunucu Blo\u011fu ve \u00d6ncelik<\/h3>\n<p>Nginx, bir iste\u011fin hangi sunucu blo\u011funa y\u00f6nlendirilece\u011fine karar verirken belirli bir \u00f6ncelik s\u0131ras\u0131 izler:<\/p>\n<p>1.  <strong>En \u0130yi <code>server_name<\/code> E\u015fle\u015fmesi:<\/strong> Nginx, gelen iste\u011fin <code>Host<\/code> ba\u015fl\u0131\u011f\u0131n\u0131 <code>server_name<\/code> y\u00f6nergeleriyle kar\u015f\u0131la\u015ft\u0131r\u0131r. Tam e\u015fle\u015fme (\u00f6rne\u011fin, <code>www.alanadiniz.com<\/code>), joker karakterli e\u015fle\u015fmelerden (<code>*.alanadiniz.com<\/code>) veya d\u00fczenli ifade e\u015fle\u015fmelerinden \u00f6nce gelir.<br \/>\n2.  <strong><code>default_server<\/code> Y\u00f6nergesi:<\/strong> E\u011fer hi\u00e7bir <code>server_name<\/code> e\u015fle\u015fmesi bulunamazsa, Nginx <code>listen<\/code> y\u00f6nergesinde <code>default_server<\/code> parametresi belirtilmi\u015f olan sunucu blo\u011funu kullan\u0131r.<br \/>\n3.  <strong>\u0130lk Sunucu Blo\u011fu:<\/strong> E\u011fer <code>default_server<\/code> belirtilmemi\u015fse ve hi\u00e7bir <code>server_name<\/code> e\u015fle\u015fmesi yoksa, Nginx dinledi\u011fi port i\u00e7in buldu\u011fu ilk sunucu blo\u011funu kullan\u0131r.<\/p>\n<p>Ubuntu&#8217;da Nginx kurulumunda, <code>\/etc\/nginx\/sites-enabled\/default<\/code> konumunda varsay\u0131lan bir sunucu blo\u011fu bulunur. Bu blok, genellikle sunucu IP adresine do\u011frudan eri\u015fildi\u011finde veya bilinmeyen bir alan ad\u0131na yap\u0131lan isteklerde g\u00f6sterilen &#8220;Welcome to Nginx!&#8221; sayfas\u0131n\u0131 sunar.<\/p>\n<p><strong>Varsay\u0131lan Blo\u011fu Devre D\u0131\u015f\u0131 B\u0131rakma veya De\u011fi\u015ftirme:<\/strong><br \/>\nKendi sunucu bloklar\u0131n\u0131z\u0131 yap\u0131land\u0131rd\u0131ktan sonra, varsay\u0131lan blo\u011fu devre d\u0131\u015f\u0131 b\u0131rakmak isteyebilirsiniz. Bunun nedeni, bilinmeyen alan adlar\u0131na veya do\u011frudan IP adresine yap\u0131lan isteklerin kendi sitelerinizden birine y\u00f6nlendirilmesini istemeniz veya sadece Nginx&#8217;in varsay\u0131lan sayfas\u0131n\u0131 g\u00f6stermeyi b\u0131rakmak istemeniz olabilir.<\/p>\n<p>Varsay\u0131lan blo\u011fu devre d\u0131\u015f\u0131 b\u0131rakmak i\u00e7in sembolik ba\u011flant\u0131s\u0131n\u0131 silebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo rm \/etc\/nginx\/sites-enabled\/default<\/code><\/pre>\n<p>Ard\u0131ndan Nginx&#8217;i yeniden y\u00fckleyin:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl reload nginx<\/code><\/pre>\n<p>Art\u0131k sunucunuzun IP adresine gitti\u011finizde veya e\u015fle\u015fmeyen bir alan ad\u0131na eri\u015fti\u011finizde, Nginx <code>default_server<\/code> olarak i\u015faretlenmi\u015f ba\u015fka bir sunucu blo\u011fu yoksa, <code>sites-enabled<\/code> dizininde alfabetik olarak ilk buldu\u011fu sunucu blo\u011funu kullanacakt\u0131r.<\/p>\n<p><strong>Kendi Varsay\u0131lan Blo\u011funuzu Belirleme:<\/strong><br \/>\nE\u011fer kendi sitelerinizden birini varsay\u0131lan olarak ayarlamak isterseniz, o sunucu blo\u011funun <code>listen<\/code> y\u00f6nergesine <code>default_server<\/code> parametresini ekleyebilirsiniz:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80 default_server;\n    listen [::]:80 default_server;\n\n    root \/var\/www\/alanadiniz.com\/html;\n    index index.html;\n    server_name alanadiniz.com www.alanadiniz.com;\n    # ... di\u011fer yap\u0131land\u0131rmalar ...\n}<\/code><\/pre>\n<p><strong>\u00d6nemli:<\/strong> Bir port i\u00e7in yaln\u0131zca tek bir <code>default_server<\/code> blo\u011fu tan\u0131mlanmal\u0131d\u0131r. Birden fazla tan\u0131mlarsan\u0131z, Nginx hangisini kullanaca\u011f\u0131n\u0131 bilemez ve beklenmedik davran\u0131\u015flar sergileyebilir.<\/p>\n<h3>Yayg\u0131n Hatalar ve Sorun Giderme<\/h3>\n<p>Nginx sunucu bloklar\u0131 yap\u0131land\u0131r\u0131rken kar\u015f\u0131la\u015f\u0131labilecek baz\u0131 yayg\u0131n hatalar ve bunlar\u0131n \u00e7\u00f6z\u00fcmleri:<\/p>\n<p>1.  <strong>S\u00f6zdizimi Hatalar\u0131:<\/strong><br \/>\n    *   <strong>Belirti:<\/strong> <code>sudo nginx -t<\/code> komutu hata veriyor. Nginx yeniden y\u00fcklenmiyor veya ba\u015flam\u0131yor.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> <code>nginx -t<\/code> komutunun \u00e7\u0131kt\u0131s\u0131n\u0131 dikkatlice okuyun. Hatan\u0131n hangi dosyada ve hangi sat\u0131rda oldu\u011funu genellikle belirtir. Noktal\u0131 virg\u00fcl eksikli\u011fi, yanl\u0131\u015f y\u00f6nerge adlar\u0131 veya yanl\u0131\u015f parantez kullan\u0131m\u0131 en yayg\u0131n nedenlerdir.<\/p>\n<p>2.  <strong>\u0130zin Hatalar\u0131:<\/strong><br \/>\n    *   <strong>Belirti:<\/strong> Taray\u0131c\u0131da 403 Forbidden hatas\u0131 al\u0131yorsunuz. Nginx hata g\u00fcnl\u00fcklerinde (genellikle <code>\/var\/log\/nginx\/error.log<\/code>) &#8220;permission denied&#8221; mesajlar\u0131 g\u00f6r\u00fcn\u00fcyor.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Nginx&#8217;in web dosyalar\u0131n\u0131 okuyabilmesi i\u00e7in do\u011fru dosya ve dizin izinlerine sahip oldu\u011fundan emin olun. Dok\u00fcman k\u00f6k dizini i\u00e7in <code>sudo chmod -R 755 \/var\/www\/alanadiniz.com<\/code> ve dosyalar i\u00e7in <code>sudo chown -R www-data:www-data \/var\/www\/alanadiniz.com\/html<\/code> (veya <code>chown -R $USER:$USER<\/code> ve Nginx kullan\u0131c\u0131s\u0131n\u0131n bu dizini okuyabildi\u011finden emin olun) komutlar\u0131n\u0131 kullan\u0131n. Nginx varsay\u0131lan olarak <code>www-data<\/code> kullan\u0131c\u0131s\u0131 alt\u0131nda \u00e7al\u0131\u015f\u0131r.<\/p>\n<p>3.  <strong>Firewall (G\u00fcvenlik Duvar\u0131) Engeli:<\/strong><br \/>\n    *   <strong>Belirti:<\/strong> Taray\u0131c\u0131da &#8220;siteye ula\u015f\u0131lam\u0131yor&#8221; veya ba\u011flant\u0131 zaman a\u015f\u0131m\u0131na u\u011frad\u0131 hatas\u0131 al\u0131yorsunuz.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> UFW veya ba\u015fka bir g\u00fcvenlik duvar\u0131n\u0131n Nginx&#8217;in kulland\u0131\u011f\u0131 portlara (80 ve\/veya 443) izin verdi\u011finden emin olun. <code>sudo ufw status<\/code> komutuyla kontrol edin ve gerekirse <code>sudo ufw allow 'Nginx HTTP'<\/code> veya <code>sudo ufw allow 'Nginx Full'<\/code> komutlar\u0131yla izin verin.<\/p>\n<p>4.  <strong>DNS \u00c7\u00f6z\u00fcmleme Sorunlar\u0131:<\/strong><br \/>\n    *   <strong>Belirti:<\/strong> Alan ad\u0131n\u0131zla siteye eri\u015femiyor, ancak sunucunun IP adresiyle Nginx&#8217;in varsay\u0131lan sayfas\u0131n\u0131 g\u00f6rebiliyorsunuz.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Alan ad\u0131n\u0131z\u0131n DNS kay\u0131tlar\u0131n\u0131n (A kayd\u0131) sunucunuzun do\u011fru IP adresine i\u015faret etti\u011finden emin olun. DNS de\u011fi\u015fikliklerinin yay\u0131lmas\u0131 biraz zaman alabilir (genellikle birka\u00e7 dakika ila birka\u00e7 saat). <code>dig alanadiniz.com<\/code> komutuyla DNS \u00e7\u00f6z\u00fcmlemesini kontrol edebilirsiniz.<\/p>\n<p>5.  <strong><code>server_name<\/code> \u00c7ak\u0131\u015fmalar\u0131 veya Yanl\u0131\u015f Yap\u0131land\u0131rma:<\/strong><br \/>\n    *   <strong>Belirti:<\/strong> Yanl\u0131\u015f web sitesi g\u00f6steriliyor veya beklendi\u011fi gibi \u00e7al\u0131\u015fm\u0131yor.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> T\u00fcm sunucu bloklar\u0131n\u0131zdaki <code>server_name<\/code> y\u00f6nergelerini dikkatlice kontrol edin. Ayn\u0131 alan ad\u0131n\u0131 birden fazla sunucu blo\u011funda tan\u0131mlamay\u0131n. <code>server_name<\/code> y\u00f6nergesinin do\u011fru alan adlar\u0131n\u0131 i\u00e7erdi\u011finden emin olun.<\/p>\n<p>6.  <strong>Sembolik Ba\u011flant\u0131 Eksikli\u011fi veya Hatal\u0131 Ba\u011flant\u0131:<\/strong><br \/>\n    *   <strong>Belirti:<\/strong> <code>sites-available<\/code> i\u00e7inde yap\u0131land\u0131rma dosyas\u0131n\u0131 olu\u015fturman\u0131za ra\u011fmen Nginx sitenizi sunmuyor.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> <code>ls -l \/etc\/nginx\/sites-enabled\/<\/code> komutuyla sembolik ba\u011flant\u0131n\u0131n do\u011fru \u015fekilde olu\u015fturulup olu\u015fturulmad\u0131\u011f\u0131n\u0131 kontrol edin. E\u011fer eksikse <code>sudo ln -s ...<\/code> komutuyla olu\u015fturun.<\/p>\n<p>7.  <strong>Nginx Yeniden Y\u00fcklenmedi\/Ba\u015flat\u0131lmad\u0131:<\/strong><br \/>\n    *   <strong>Belirti:<\/strong> Yap\u0131land\u0131rma dosyas\u0131nda de\u011fi\u015fiklik yapt\u0131n\u0131z ancak web sitesinde bir de\u011fi\u015fiklik g\u00f6rm\u00fcyorsunuz.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Her yap\u0131land\u0131rma de\u011fi\u015fikli\u011finden sonra <code>sudo systemctl reload nginx<\/code> (hatas\u0131z de\u011fi\u015fiklikler i\u00e7in) veya <code>sudo systemctl restart nginx<\/code> (b\u00fcy\u00fck de\u011fi\u015fiklikler veya sorun giderme i\u00e7in) komutunu \u00e7al\u0131\u015ft\u0131rmay\u0131 unutmay\u0131n.<\/p>\n<h3>SSL\/TLS (HTTPS) ile Sunucu Bloklar\u0131<\/h3>\n<p>Modern web&#8217;de HTTPS, bir web sitesinin olmazsa olmaz\u0131d\u0131r. Kullan\u0131c\u0131 verilerini korur, SEO s\u0131ralamas\u0131n\u0131 iyile\u015ftirir ve sitenize g\u00fcvenilirlik katar. Let&#8217;s Encrypt gibi \u00fccretsiz sertifika otoriteleri sayesinde HTTPS kurulumu olduk\u00e7a kolayla\u015fm\u0131\u015ft\u0131r.<\/p>\n<p>SSL\/TLS ile bir sunucu blo\u011fu yap\u0131land\u0131rmak, temel HTTP blo\u011funa ek olarak 443 portunu dinleyen ve SSL sertifikas\u0131 dosyalar\u0131n\u0131 belirten y\u00f6nergeler eklemeyi gerektirir.<\/p>\n<p>\u00d6rne\u011fin, <code>alanadiniz.com<\/code> i\u00e7in Let&#8217;s Encrypt ile SSL sertifikas\u0131 ald\u0131\u011f\u0131n\u0131z\u0131 varsayal\u0131m (bu ad\u0131mlar genellikle <code>certbot<\/code> arac\u0131 ile yap\u0131l\u0131r). Sertifika dosyalar\u0131n\u0131z\u0131n <code>\/etc\/letsencrypt\/live\/alanadiniz.com\/fullchain.pem<\/code> ve <code>\/etc\/letsencrypt\/live\/alanadiniz.com\/privkey.pem<\/code> konumlar\u0131nda oldu\u011funu varsayarsak, HTTPS sunucu blo\u011funuz \u015f\u00f6yle g\u00f6r\u00fcnebilir:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    listen [::]:80;\n    server_name alanadiniz.com www.alanadiniz.com;\n\n    # HTTP'den HTTPS'ye y\u00f6nlendirme\n    return 301 https:\/\/$host$request_uri;\n}\n\nserver {\n    listen 443 ssl http2;\n    listen [::]:443 ssl http2;\n    server_name alanadiniz.com www.alanadiniz.com;\n\n    root \/var\/www\/alanadiniz.com\/html;\n    index index.html index.htm index.nginx-debian.html;\n\n    ssl_certificate \/etc\/letsencrypt\/live\/alanadiniz.com\/fullchain.pem;\n    ssl_certificate_key \/etc\/letsencrypt\/live\/alanadiniz.com\/privkey.pem;\n\n    ssl_session_cache shared:SSL:10m;\n    ssl_session_timeout 10m;\n    ssl_protocols TLSv1.2 TLSv1.3;\n    ssl_ciphers \"ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384\";\n    ssl_prefer_server_ciphers on;\n\n    add_header Strict-Transport-Security \"max-age=63072000\" always; # HSTS\n    add_header X-Frame-Options \"DENY\";\n    add_header X-Content-Type-Options \"nosniff\";\n    add_header X-XSS-Protection \"1; mode=block\";\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n\n    # ... di\u011fer yap\u0131land\u0131rmalar ...\n}<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rmada:<br \/>\n*   \u0130lk <code>server<\/code> blo\u011fu, 80 portunu dinler ve t\u00fcm HTTP isteklerini 301 kal\u0131c\u0131 y\u00f6nlendirmeyle HTTPS&#8217;ye y\u00f6nlendirir.<br \/>\n*   \u0130kinci <code>server<\/code> blo\u011fu, 443 portunu <code>ssl<\/code> ve <code>http2<\/code> (HTTP\/2 protokol\u00fc i\u00e7in) parametreleriyle dinler.<br \/>\n*   <code>ssl_certificate<\/code> ve <code>ssl_certificate_key<\/code> y\u00f6nergeleri, sertifika ve \u00f6zel anahtar dosyalar\u0131n\u0131n yollar\u0131n\u0131 belirtir.<br \/>\n*   <code>ssl_protocols<\/code> ve <code>ssl_ciphers<\/code> y\u00f6nergeleri, g\u00fcvenlik i\u00e7in \u00f6nerilen SSL\/TLS protokollerini ve \u015fifre s\u00fcitlerini belirler.<br \/>\n*   <code>add_header<\/code> y\u00f6nergeleri, g\u00fcvenlik geli\u015ftirmeleri i\u00e7in HTTP yan\u0131t ba\u015fl\u0131klar\u0131 ekler (\u00f6rne\u011fin, HSTS, X-Frame-Options).<\/p>\n<p>SSL\/TLS kurulumu ba\u015fl\u0131 ba\u015f\u0131na ayr\u0131 bir konu oldu\u011fundan, bu \u00f6rnek sadece Nginx sunucu bloklar\u0131 ile nas\u0131l entegre edildi\u011fini g\u00f6stermektedir. Detayl\u0131 Let&#8217;s Encrypt ve Certbot kurulumu i\u00e7in ilgili belgelere ba\u015fvurman\u0131z \u00f6nerilir.<\/p>\n<h3>Geli\u015fmi\u015f Nginx Yap\u0131land\u0131rmalar\u0131<\/h3>\n<p>Nginx, sadece statik web sayfalar\u0131n\u0131 sunmaktan \u00e7ok daha fazlas\u0131n\u0131 yapabilir. Sunucu bloklar\u0131 i\u00e7inde kullan\u0131labilecek baz\u0131 geli\u015fmi\u015f \u00f6zellikler \u015funlard\u0131r:<\/p>\n<h4>Ters Proxy (Reverse Proxy)<\/h4>\n<p>Nginx&#8217;i bir ters proxy olarak kullanmak, Node.js, Python (Django, Flask), Ruby on Rails gibi uygulama sunucular\u0131n\u0131 Nginx&#8217;in arkas\u0131na gizlemenizi sa\u011flar. Nginx, gelen istekleri uygulama sunucusuna y\u00f6nlendirir ve uygulama sunucusunun yan\u0131tlar\u0131n\u0131 istemciye geri iletir. Bu, g\u00fcvenlik, performans (Nginx statik dosyalar\u0131 daha iyi sunar) ve y\u00fck dengeleme i\u00e7in faydal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    server_name api.alanadiniz.com;\n\n    location \/ {\n        proxy_pass http:\/\/localhost:3000; # Uygulaman\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 adres ve port\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n}<\/code><\/pre>\n<p>Bu \u00f6rnek, <code>api.alanadiniz.com<\/code> adresine gelen istekleri <code>localhost:3000<\/code> adresinde \u00e7al\u0131\u015fan bir uygulamaya y\u00f6nlendirir.<\/p>\n<h4>Y\u00fck Dengeleme (Load Balancing)<\/h4>\n<p>Birden fazla uygulama sunucusuna sahip oldu\u011funuzda, gelen istekleri bu sunucular aras\u0131nda da\u011f\u0131tmak i\u00e7in Nginx&#8217;i bir y\u00fck dengeleyici olarak kullanabilirsiniz. Bu, uygulaman\u0131z\u0131n \u00f6l\u00e7eklenebilirli\u011fini ve hata tolerans\u0131n\u0131 art\u0131r\u0131r.<\/p>\n<pre><code class=\"language-nginx\">upstream backend_servers {\n    server 192.168.1.100:8000;\n    server 192.168.1.101:8000;\n    # Di\u011fer sunucular\u0131 buraya ekleyin\n}\n\nserver {\n    listen 80;\n    server_name uygulama.alanadiniz.com;\n\n    location \/ {\n        proxy_pass http:\/\/backend_servers;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n    }\n}<\/code><\/pre>\n<p><code>upstream<\/code> blo\u011fu, uygulama sunucular\u0131n\u0131n listesini tan\u0131mlar. <code>server<\/code> blo\u011fu i\u00e7indeki <code>proxy_pass<\/code> y\u00f6nergesi, istekleri bu <code>upstream<\/code> grubuna y\u00f6nlendirir.<\/p>\n<h4>FastCGI (PHP Uygulamalar\u0131 i\u00e7in)<\/h4>\n<p>Nginx, PHP gibi sunucu tarafl\u0131 betik dillerini \u00e7al\u0131\u015ft\u0131rmak i\u00e7in do\u011frudan destek sa\u011flamaz. Bunun yerine, FastCGI protokol\u00fc arac\u0131l\u0131\u011f\u0131yla PHP-FPM (FastCGI Process Manager) gibi bir PHP i\u015flemcisine istekleri iletir.<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    server_name phpapp.alanadiniz.com;\n    root \/var\/www\/phpapp.alanadiniz.com\/html;\n    index index.php index.html;\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n\n    location ~ \\.php$ {\n        include snippets\/fastcgi-php.conf;\n        fastcgi_pass unix:\/run\/php\/php7.0-fpm.sock; # Ubuntu 16.04 i\u00e7in PHP 7.0 soket yolu\n        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n        include fastcgi_params;\n    }\n}<\/code><\/pre>\n<p>Bu \u00f6rnekte, <code>.php<\/code> ile biten t\u00fcm istekler PHP-FPM soketine (<code>unix:\/run\/php\/php7.0-fpm.sock<\/code>) y\u00f6nlendirilir. <code>snippets\/fastcgi-php.conf<\/code> dosyas\u0131, Nginx&#8217;in PHP ile ileti\u015fim kurmas\u0131 i\u00e7in gerekli temel ayarlar\u0131 i\u00e7erir. Ubuntu 16.04&#8217;te genellikle PHP 7.0 kullan\u0131l\u0131r, bu nedenle soket yolu buna g\u00f6re belirtilmi\u015ftir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, Ubuntu 16.04 \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. Nginx&#8217;in kurulumundan ba\u015flayarak, her bir web sitesi i\u00e7in ayr\u0131 dizinler olu\u015fturmay\u0131, temel sunucu blo\u011fu yap\u0131land\u0131rma dosyas\u0131n\u0131 yazmay\u0131, sembolik ba\u011flant\u0131larla etkinle\u015ftirmeyi ve yap\u0131land\u0131rmay\u0131 test edip yeniden y\u00fcklemeyi \u00f6\u011frendik. Ayr\u0131ca, birden fazla web sitesi kurma, varsay\u0131lan sunucu blo\u011funu y\u00f6netme, yayg\u0131n sorun giderme y\u00f6ntemleri ve SSL\/TLS ile geli\u015fmi\u015f proxy ve FastCGI yap\u0131land\u0131rmalar\u0131na dair temel bilgileri de sunduk.<\/p>\n<p>Nginx sunucu bloklar\u0131, tek bir sunucu \u00fczerinde birden fazla web uygulamas\u0131n\u0131 veya statik siteyi verimli bir \u015fekilde bar\u0131nd\u0131rman\u0131n temel ta\u015f\u0131d\u0131r. Bu esneklik, web altyap\u0131n\u0131z\u0131 \u00f6l\u00e7eklendirmenize ve y\u00f6netmenize olanak tan\u0131r. Edindi\u011finiz bu bilgilerle, kendi Nginx sunucunuzu g\u00fcvenle yap\u0131land\u0131rabilir ve web projelerinizi hayata ge\u00e7irebilirsiniz. Nginx&#8217;in sundu\u011fu daha bir\u00e7ok geli\u015fmi\u015f \u00f6zellik ve optimizasyon se\u00e7ene\u011fi bulunmaktad\u0131r; bu makale size bir ba\u015flang\u0131\u00e7 noktas\u0131 sa\u011flam\u0131\u015ft\u0131r ve daha derinlemesine ke\u015ffetmeye te\u015fvik eder.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu 16.04 \u00dczerinde Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Kurulumu ve Yap\u0131land\u0131rmas\u0131\nGiri\u015f\nG\u00fcn\u00fcm\u00fcz\u00fcn dinamik web ortam\u0131nda, tek bir sunu","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-38489","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>Ubuntu 16.04 \u00dczerinde Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Kurulumu ve Yap\u0131land\u0131rmas\u0131 - 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\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ubuntu 16.04 \u00dczerinde Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Kurulumu ve Yap\u0131land\u0131rmas\u0131\" \/>\n<meta property=\"og:description\" content=\"Ubuntu 16.04 \u00dczerinde Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Kurulumu ve Yap\u0131land\u0131rmas\u0131 Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn dinamik web ortam\u0131nda, tek bir sunu\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-01T08:40:56+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=\"22 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ubuntu 16.04 \u00dczerinde Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Kurulumu ve Yap\u0131land\u0131rmas\u0131\",\"datePublished\":\"2026-02-01T08:40:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/\"},\"wordCount\":3368,\"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\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/\",\"name\":\"Ubuntu 16.04 \u00dczerinde Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Kurulumu ve Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-01T08:40:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ubuntu 16.04 \u00dczerinde Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Kurulumu ve Yap\u0131land\u0131rmas\u0131\"}]},{\"@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":"Ubuntu 16.04 \u00dczerinde Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Kurulumu ve Yap\u0131land\u0131rmas\u0131 - 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\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/","og_locale":"tr_TR","og_type":"article","og_title":"Ubuntu 16.04 \u00dczerinde Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Kurulumu ve Yap\u0131land\u0131rmas\u0131","og_description":"Ubuntu 16.04 \u00dczerinde Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Kurulumu ve Yap\u0131land\u0131rmas\u0131 Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn dinamik web ortam\u0131nda, tek bir sunu","og_url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-01T08:40:56+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"22 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ubuntu 16.04 \u00dczerinde Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Kurulumu ve Yap\u0131land\u0131rmas\u0131","datePublished":"2026-02-01T08:40:56+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/"},"wordCount":3368,"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\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/","url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/","name":"Ubuntu 16.04 \u00dczerinde Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Kurulumu ve Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-01T08:40:56+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerinde-nginx-sunucu-bloklari-sanal-hostlar-kurulumu-ve-yapilandirmasi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ubuntu 16.04 \u00dczerinde Nginx Sunucu Bloklar\u0131 (Sanal Hostlar) Kurulumu ve Yap\u0131land\u0131rmas\u0131"}]},{"@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\/38489","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=38489"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38489\/revisions"}],"predecessor-version":[{"id":38490,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38489\/revisions\/38490"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38489"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38489"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38489"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}