{"id":32110,"date":"2025-10-17T21:41:03","date_gmt":"2025-10-17T18:41:03","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=32110"},"modified":"2025-10-17T21:41:03","modified_gmt":"2025-10-17T18:41:03","slug":"django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/","title":{"rendered":"Django Uygulamalar\u0131n\u0131 uWSGI ve Nginx ile Ubuntu 14.04 \u00dczerinde Da\u011f\u0131tma"},"content":{"rendered":"<p><body><\/p>\n<h2>Django Uygulamalar\u0131n\u0131 uWSGI ve Nginx ile Ubuntu 14.04 \u00dczerinde Da\u011f\u0131tma<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>Web uygulamalar\u0131n\u0131n geli\u015ftirilmesi kadar, bu uygulamalar\u0131n \u00fcretim ortam\u0131nda sorunsuz bir \u015fekilde \u00e7al\u0131\u015f\u0131r hale getirilmesi de b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r. Django, Python tabanl\u0131 pop\u00fcler bir web \u00e7at\u0131s\u0131d\u0131r ve h\u0131zl\u0131 geli\u015ftirme s\u00fcre\u00e7leri sunar. Ancak, Django&#8217;nun kendisi bir web sunucusu de\u011fildir; geli\u015ftirme a\u015famas\u0131nda kullan\u0131lan dahili sunucu, \u00fcretim ortam\u0131 i\u00e7in tasarlanmam\u0131\u015ft\u0131r. \u00dcretim ortam\u0131nda Django uygulamalar\u0131n\u0131 y\u00fcksek performans, g\u00fcvenlik ve \u00f6l\u00e7eklenebilirlik ile sunmak i\u00e7in genellikle bir WSGI (Web Server Gateway Interface) sunucusu (uWSGI gibi) ve bir ters proxy sunucusu (Nginx gibi) kullan\u0131l\u0131r.<\/p>\n<p>Bu makalede, Django uygulamalar\u0131n\u0131 Ubuntu 14.04 i\u015fletim sistemi \u00fczerinde uWSGI ve Nginx kullanarak nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m detayl\u0131 bir \u015fekilde inceleyece\u011fiz. Ubuntu 14.04, eski bir LTS (Uzun S\u00fcreli Destek) s\u00fcr\u00fcm\u00fc olmas\u0131na ra\u011fmen, baz\u0131 kurumsal veya \u00f6zel projelerde hala kullan\u0131l\u0131yor olabilir. Bu rehber, bu \u00f6zel senaryoya odaklanarak, her bir bile\u015fenin kurulumu, yap\u0131land\u0131rmas\u0131 ve birbiriyle entegrasyonu hakk\u0131nda kapsaml\u0131 bilgi sunacakt\u0131r. Nginx, gelen HTTP isteklerini kar\u015f\u0131layacak, statik dosyalar\u0131 do\u011frudan sunacak ve dinamik istekleri uWSGI&#8217;ye y\u00f6nlendirecektir. uWSGI ise Django uygulaman\u0131z ile Nginx aras\u0131nda bir k\u00f6pr\u00fc g\u00f6revi g\u00f6rerek, Django&#8217;nun WSGI aray\u00fcz\u00fcn\u00fc kullanarak istekleri i\u015fleyecek ve yan\u0131tlar\u0131 Nginx&#8217;e geri g\u00f6nderecektir. Bu mimari, uygulaman\u0131z\u0131n performans\u0131n\u0131 art\u0131r\u0131rken, kaynak kullan\u0131m\u0131n\u0131 optimize etmenize ve daha g\u00fcvenli bir ortam sa\u011flaman\u0131za yard\u0131mc\u0131 olur.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>Bu rehbere ba\u015flamadan \u00f6nce, a\u015fa\u011f\u0131daki \u00f6n gereksinimlerin yerine getirilmi\u015f oldu\u011fundan emin olmal\u0131s\u0131n\u0131z:<\/p>\n<h4>Ubuntu 14.04 Sunucusu<\/h4>\n<p>Uzak bir Ubuntu 14.04 sunucusuna (\u00f6rne\u011fin, bir VPS veya bulut sunucusu) sahip olmal\u0131s\u0131n\u0131z. T\u00fcm komutlar, bu sunucu \u00fczerinde root yetkilerine sahip bir kullan\u0131c\u0131 veya <code>sudo<\/code> kullanabilen bir kullan\u0131c\u0131 taraf\u0131ndan \u00e7al\u0131\u015ft\u0131r\u0131lacakt\u0131r.<\/p>\n<h4>SSH Eri\u015fimi<\/h4>\n<p>Sunucunuza SSH \u00fczerinden eri\u015febilmelisiniz. Genellikle, bir terminal veya PuTTY gibi bir SSH istemcisi kullanarak sunucunuza ba\u011flan\u0131l\u0131r.<\/p>\n<h4>Python ve pip<\/h4>\n<p>Ubuntu 14.04 genellikle Python 2.7 ile gelir. Django&#8217;nun modern s\u00fcr\u00fcmleri Python 3 gerektirir. Bu rehberde Python 3 kullan\u0131m\u0131na odaklanaca\u011f\u0131z, bu nedenle Python 3 ve onun paket y\u00f6neticisi pip&#8217;in kurulu olmas\u0131 \u00f6nemlidir.<\/p>\n<h4>Virtualenv<\/h4>\n<p>Python projeleri i\u00e7in sanal ortamlar (virtual environments) kullanmak iyi bir uygulamad\u0131r. Bu, projenizin ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 sistem genelindeki Python paketlerinden izole etmenizi sa\u011flar ve ba\u011f\u0131ml\u0131l\u0131k \u00e7ak\u0131\u015fmalar\u0131n\u0131 \u00f6nler.<\/p>\n<h4>\u00d6rnek Bir Django Uygulamas\u0131<\/h4>\n<p>Da\u011f\u0131tmak istedi\u011finiz bir Django uygulamas\u0131n\u0131n haz\u0131r olmas\u0131 gerekir. Bu makale, bir Django uygulamas\u0131n\u0131n zaten mevcut oldu\u011funu ve sunucuya aktar\u0131ld\u0131\u011f\u0131n\u0131 varsayacakt\u0131r. E\u011fer hen\u00fcz bir uygulaman\u0131z yoksa, basit bir &#8220;Hello World&#8221; uygulamas\u0131 olu\u015fturarak ba\u015flayabilirsiniz.<\/p>\n<h3>Sistem G\u00fcncelleme ve Temel Ba\u011f\u0131ml\u0131l\u0131klar\u0131n Kurulumu<\/h3>\n<p>\u0130lk ad\u0131m olarak, sunucunuzun paket listesini g\u00fcncellemeli ve temel geli\u015ftirme ara\u00e7lar\u0131n\u0131 kurmal\u0131s\u0131n\u0131z.<\/p>\n<h4>Sistem Paketlerini G\u00fcncelleme<\/h4>\n<p>Sunucunuzdaki paket bilgilerini g\u00fcncelleyin ve y\u00fckl\u00fc paketleri en son s\u00fcr\u00fcmlerine y\u00fckseltin:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get update\nsudo apt-get upgrade -y<\/code><\/pre>\n<h4>Python 3 ve pip Kurulumu<\/h4>\n<p>Ubuntu 14.04, varsay\u0131lan olarak Python 2.7 ile gelir. Modern Django s\u00fcr\u00fcmleri Python 3 gerektirdi\u011finden, Python 3&#8217;\u00fc ve pip&#8217;ini kural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install -y python3 python3-pip python3-dev<\/code><\/pre>\n<p><code>python3-dev<\/code> paketi, uWSGI gibi baz\u0131 Python paketlerinin derlenmesi i\u00e7in gerekli olan geli\u015ftirme ba\u015fl\u0131klar\u0131n\u0131 ve k\u00fct\u00fcphanelerini i\u00e7erir.<\/p>\n<h4>Nginx Kurulumu<\/h4>\n<p>Nginx, performansl\u0131 bir web sunucusu ve ters proxy sunucusudur. Kurulumu olduk\u00e7a basittir:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install -y nginx<\/code><\/pre>\n<p>Nginx&#8217;in ba\u015far\u0131l\u0131 bir \u015fekilde kuruldu\u011funu kontrol etmek i\u00e7in taray\u0131c\u0131n\u0131zdan sunucunuzun IP adresine gidebilirsiniz. &#8220;Welcome to nginx!&#8221; mesaj\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<h4>Virtualenv Kurulumu<\/h4>\n<p>Sanal ortamlar\u0131 y\u00f6netmek i\u00e7in <code>virtualenv<\/code> arac\u0131n\u0131 kurun:<\/p>\n<pre><code class=\"language-bash\">sudo pip3 install virtualenv<\/code><\/pre>\n<p>Bu komut, <code>virtualenv<\/code>&#8216;i Python 3&#8217;\u00fcn pip&#8217;i ile kuracakt\u0131r.<\/p>\n<h3>Django Projesi ve Sanal Ortam Kurulumu<\/h3>\n<p>\u015eimdi Django projenizi sunucuda yap\u0131land\u0131rma zaman\u0131.<\/p>\n<h4>Proje Dizini Olu\u015fturma ve Sanal Ortam Kurulumu<\/h4>\n<p>Django projeniz i\u00e7in bir dizin olu\u015fturun ve bu dizine gidin. Bu rehberde <code>\/var\/www\/myproject<\/code> yolunu kullanaca\u011f\u0131z. Siz kendi projenizin ad\u0131n\u0131 ve yolunu kullanabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/var\/www\/myproject\ncd \/var\/www\/myproject<\/code><\/pre>\n<p>Bu dizinde, projeniz i\u00e7in bir sanal ortam olu\u015fturun ve etkinle\u015ftirin:<\/p>\n<pre><code class=\"language-bash\">virtualenv venv -p python3\nsource venv\/bin\/activate<\/code><\/pre>\n<p>Art\u0131k terminalinizde <code>(venv)<\/code> \u00f6n eki g\u00f6rmelisiniz, bu da sanal ortam\u0131n etkin oldu\u011funu g\u00f6sterir.<\/p>\n<h4>Django ve Di\u011fer Ba\u011f\u0131ml\u0131l\u0131klar\u0131 Kurma<\/h4>\n<p>Sanal ortam etkinle\u015ftirildikten sonra, Django&#8217;yu ve projenizin di\u011fer ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 (\u00f6rne\u011fin, veritaban\u0131 s\u00fcr\u00fcc\u00fcleri gibi) kurabilirsiniz.<br \/>\nE\u011fer <code>requirements.txt<\/code> dosyan\u0131z varsa:<\/p>\n<pre><code class=\"language-bash\">pip install -r requirements.txt<\/code><\/pre>\n<p>E\u011fer yoksa, temel Django kurulumu i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">pip install django<\/code><\/pre>\n<p>Bu rehber i\u00e7in, basit bir Django projesi olu\u015fturdu\u011funuzu varsayal\u0131m:<\/p>\n<pre><code class=\"language-bash\">django-admin startproject myproject .\npython manage.py startapp myapp<\/code><\/pre>\n<p>Ard\u0131ndan, veritaban\u0131 ge\u00e7i\u015flerini uygulay\u0131n:<\/p>\n<pre><code class=\"language-bash\">python manage.py migrate<\/code><\/pre>\n<h4>Django Projesi Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Django projenizin <code>settings.py<\/code> dosyas\u0131n\u0131 d\u00fczenlemeniz gerekecek.<\/p>\n<p>1.  <strong><code>ALLOWED_HOSTS<\/code><\/strong>: Sunucunuzun IP adresini veya alan ad\u0131n\u0131z\u0131 ekleyin.<\/p>\n<pre><code class=\"language-python\"># myproject\/settings.py\n\n    ALLOWED_HOSTS = ['your_server_ip_or_domain.com', 'localhost']<\/code><\/pre>\n<p>2.  <strong><code>STATIC_ROOT<\/code><\/strong>: Nginx&#8217;in statik dosyalar\u0131 do\u011frudan sunabilmesi i\u00e7in t\u00fcm statik dosyalar\u0131n toplanaca\u011f\u0131 bir dizin belirtin. Bu dizin, projenizin k\u00f6k dizini i\u00e7inde olabilir.<\/p>\n<pre><code class=\"language-python\"># myproject\/settings.py\n\n    import os\n\n    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))\n    STATIC_ROOT = os.path.join(BASE_DIR, 'static_files')<\/code><\/pre>\n<p>3.  <strong><code>DEBUG<\/code><\/strong>: \u00dcretim ortam\u0131nda <code>DEBUG = False<\/code> olarak ayarland\u0131\u011f\u0131ndan emin olun.<\/p>\n<pre><code class=\"language-python\"># myproject\/settings.py\n\n    DEBUG = False<\/code><\/pre>\n<p><code>settings.py<\/code> dosyas\u0131n\u0131 kaydettikten sonra, statik dosyalar\u0131 belirtilen <code>STATIC_ROOT<\/code> dizinine toplay\u0131n:<\/p>\n<pre><code class=\"language-bash\">python manage.py collectstatic<\/code><\/pre>\n<p>Bu i\u015flem, <code>STATIC_ROOT<\/code> dizinini olu\u015fturacak ve t\u00fcm statik dosyalar\u0131 oraya kopyalayacakt\u0131r.<\/p>\n<h3>uWSGI Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>uWSGI, Django uygulaman\u0131z ile Nginx aras\u0131nda bir aray\u00fcz g\u00f6revi g\u00f6recektir.<\/p>\n<h4>uWSGI Kurulumu<\/h4>\n<p>Sanal ortam\u0131n\u0131z etkin durumdayken uWSGI&#8217;yi kurun:<\/p>\n<pre><code class=\"language-bash\">pip install uwsgi<\/code><\/pre>\n<h4>uWSGI&#8217;yi Test Etme<\/h4>\n<p>uWSGI&#8217;nin Django projenizle d\u00fczg\u00fcn \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 test edelim. Proje k\u00f6k dizinindeyken (yani <code>manage.py<\/code> dosyas\u0131n\u0131n oldu\u011fu dizinde) a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">uwsgi --http :8000 --module myproject.wsgi<\/code><\/pre>\n<p>Burada <code>myproject<\/code> sizin Django projenizin ad\u0131d\u0131r (yani <code>settings.py<\/code> dosyas\u0131n\u0131n bulundu\u011fu dizinin ad\u0131). Taray\u0131c\u0131n\u0131zdan <code>http:\/\/your_server_ip:8000<\/code> adresine giderek Django uygulaman\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6rmelisiniz. E\u011fer g\u00f6r\u00fcyorsan\u0131z, uWSGI ba\u015far\u0131l\u0131 bir \u015fekilde Django uygulaman\u0131za ba\u011flanm\u0131\u015ft\u0131r. Testi bitirmek i\u00e7in <code>Ctrl+C<\/code> tu\u015flar\u0131na basarak uWSGI sunucusunu durdurun.<\/p>\n<h4>uWSGI Yap\u0131land\u0131rma Dosyas\u0131 Olu\u015fturma<\/h4>\n<p>uWSGI&#8217;yi bir komutla \u00e7al\u0131\u015ft\u0131rmak yerine, daha karma\u015f\u0131k yap\u0131land\u0131rmalar\u0131 y\u00f6netmek i\u00e7in bir <code>.ini<\/code> dosyas\u0131 kullanmak daha iyidir. Proje dizininizde <code>uwsgi.ini<\/code> ad\u0131nda bir dosya olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">nano \/var\/www\/myproject\/uwsgi.ini<\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7eri\u011fi a\u015fa\u011f\u0131daki gibi olmal\u0131d\u0131r:<\/p>\n<pre><code class=\"language-ini\">[uwsgi]\n<h2>Django projesinin k\u00f6k dizini<\/h2>\nchdir = \/var\/www\/myproject\n\n<h2>Django'nun WSGI mod\u00fcl\u00fc<\/h2>\nmodule = myproject.wsgi:application\n\n<h2>Sanal ortam yolu<\/h2>\nhome = \/var\/www\/myproject\/venv\n\n<h2>Master process'i etkinle\u015ftir<\/h2>\nmaster = true\n\n<h2>\u00c7al\u0131\u015fan process say\u0131s\u0131<\/h2>\nprocesses = 5\n\n<h2>Unix soketi kullan (Nginx ile ileti\u015fim i\u00e7in)<\/h2>\nsocket = \/var\/www\/myproject\/myproject.sock\n\n<h2>Soketin izinleri (Nginx'in eri\u015febilmesi i\u00e7in)<\/h2>\nchmod-socket = 664\n\n<h2>Processlerin kapanmas\u0131nda otomatik temizlik yap<\/h2>\nvacuum = true\n\n<h2>Her process i\u00e7in maksimum istek say\u0131s\u0131 (bellek s\u0131z\u0131nt\u0131lar\u0131n\u0131 \u00f6nlemek i\u00e7in)<\/h2>\nmax-requests = 5000\n\n<h2>Log dosyas\u0131<\/h2>\nlogto = \/var\/log\/uwsgi\/myproject.log\n\n<h2>Pid dosyas\u0131<\/h2>\npidfile = \/var\/run\/uwsgi\/myproject.pid<\/code><\/pre>\n<p>Yukar\u0131daki yap\u0131land\u0131rmay\u0131 kendi projenizin adlar\u0131na ve yollar\u0131na g\u00f6re d\u00fczenlemeyi unutmay\u0131n. \u00d6zellikle <code>module<\/code> sat\u0131r\u0131ndaki <code>myproject<\/code> k\u0131sm\u0131n\u0131 kendi Django projenizin ad\u0131yla de\u011fi\u015ftirmeniz gerekmektedir. <code>socket<\/code> ve <code>pidfile<\/code> i\u00e7in dizinlerin (<code>\/var\/run\/uwsgi<\/code>, <code>\/var\/log\/uwsgi<\/code>) var oldu\u011fundan emin olun, yoksa olu\u015fturun:<\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/var\/run\/uwsgi\nsudo mkdir -p \/var\/log\/uwsgi\nsudo chown -R www-data:www-data \/var\/log\/uwsgi # Nginx kullan\u0131c\u0131s\u0131n\u0131n log yazabilmesi i\u00e7in\nsudo chown -R www-data:www-data \/var\/run\/uwsgi # Nginx kullan\u0131c\u0131s\u0131n\u0131n pid yazabilmesi i\u00e7in (veya uwsgi kullan\u0131c\u0131s\u0131 olu\u015fturun)<\/code><\/pre>\n<p>Bu ad\u0131mlar, Nginx&#8217;in uWSGI soketine ve log dosyalar\u0131na eri\u015fimini sa\u011flamak i\u00e7in \u00f6nemlidir.<\/p>\n<h4>uWSGI&#8217;yi Bir Sistem Servisi Olarak \u00c7al\u0131\u015ft\u0131rma (Upstart)<\/h4>\n<p>Ubuntu 14.04, sistem servislerini y\u00f6netmek i\u00e7in Upstart kullan\u0131r. uWSGI&#8217;nin sunucu ba\u015flad\u0131\u011f\u0131nda otomatik olarak ba\u015flamas\u0131 ve arka planda \u00e7al\u0131\u015fmas\u0131 i\u00e7in bir Upstart yap\u0131land\u0131rma dosyas\u0131 olu\u015ftural\u0131m.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/init\/uwsgi.conf<\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7eri\u011fi a\u015fa\u011f\u0131daki gibi olmal\u0131d\u0131r:<\/p>\n<pre><code class=\"language-ini\">description \"uWSGI server for myproject\"\n\nstart on runlevel [2345]\nstop on runlevel [!2345]\n\nrespawn\n\n<h2>Projenizin dizinine git<\/h2>\nchdir \/var\/www\/myproject\n\n<h2>Sanal ortam\u0131 etkinle\u015ftir<\/h2>\n<h2>exec \/var\/www\/myproject\/venv\/bin\/uwsgi --ini \/var\/www\/myproject\/uwsgi.ini<\/h2>\n<h2>Alternatif olarak, e\u011fer uwsgi global olarak kurulduysa veya PATH'te ise:<\/h2>\nexec \/usr\/local\/bin\/uwsgi --ini \/var\/www\/myproject\/uwsgi.ini<\/code><\/pre>\n<p><code>exec<\/code> sat\u0131r\u0131ndaki <code>uwsgi<\/code> yolunun do\u011fru oldu\u011fundan emin olun. E\u011fer sanal ortam i\u00e7indeki <code>uwsgi<\/code>&#8216;yi kullanmak istiyorsan\u0131z, tam yolunu belirtmelisiniz (<code>\/var\/www\/myproject\/venv\/bin\/uwsgi<\/code>). E\u011fer <code>pip install uwsgi<\/code> komutunu sanal ortam <em>i\u00e7inde<\/em> \u00e7al\u0131\u015ft\u0131rd\u0131ysan\u0131z, bu yol ge\u00e7erli olacakt\u0131r. E\u011fer <code>sudo pip3 install uwsgi<\/code> ile sistem geneline kurduysan\u0131z, <code>\/usr\/local\/bin\/uwsgi<\/code> gibi bir yol do\u011fru olabilir.<\/p>\n<p>\u015eimdi uWSGI servisini ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo start uwsgi<\/code><\/pre>\n<p>Servisin durumunu kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo status uwsgi<\/code><\/pre>\n<p>E\u011fer her \u015fey yolundaysa, <code>uwsgi start\/running<\/code> gibi bir mesaj g\u00f6rmelisiniz. Ayr\u0131ca <code>\/var\/log\/uwsgi\/myproject.log<\/code> dosyas\u0131n\u0131 kontrol ederek herhangi bir hata olup olmad\u0131\u011f\u0131n\u0131 g\u00f6rebilirsiniz.<\/p>\n<h3>Nginx Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Nginx, gelen istekleri kar\u015f\u0131layacak, statik dosyalar\u0131 sunacak ve dinamik istekleri uWSGI&#8217;ye y\u00f6nlendirecektir.<\/p>\n<h4>Nginx Yap\u0131land\u0131rma Dosyas\u0131 Olu\u015fturma<\/h4>\n<p>Nginx i\u00e7in yeni bir site yap\u0131land\u0131rma dosyas\u0131 olu\u015ftural\u0131m. Bu dosyay\u0131 <code>\/etc\/nginx\/sites-available\/<\/code> dizininde saklayaca\u011f\u0131z.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/myproject<\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7eri\u011fi a\u015fa\u011f\u0131daki gibi olmal\u0131d\u0131r:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    server_name your_server_ip_or_domain.com; # Sunucunuzun IP adresi veya alan ad\u0131\n\n    # Statik dosyalar i\u00e7in konum\n    location \/static\/ {\n        alias \/var\/www\/myproject\/static_files\/; # Django'nun collectstatic ile toplad\u0131\u011f\u0131 dizin\n        expires 30d; # Taray\u0131c\u0131 \u00f6nbellekleme\n    }\n\n    # Medya dosyalar\u0131 i\u00e7in konum (iste\u011fe ba\u011fl\u0131, e\u011fer uygulaman\u0131z medya dosyalar\u0131 kullan\u0131yorsa)\n    # location \/media\/ {\n    #     alias \/var\/www\/myproject\/media\/;\n    #     expires 30d;\n    # }\n\n    # T\u00fcm di\u011fer istekleri uWSGI'ye y\u00f6nlendir\n    location \/ {\n        include uwsgi_params; # uWSGI i\u00e7in gerekli parametreleri i\u00e7erir\n        uwsgi_pass unix:\/\/\/var\/www\/myproject\/myproject.sock; # uWSGI soket dosyas\u0131\n    }\n\n    # Hata sayfalar\u0131\n    error_page 500 502 503 504 \/50x.html;\n    location = \/50x.html {\n        root \/usr\/share\/nginx\/html;\n    }\n}<\/code><\/pre>\n<p><code>server_name<\/code> k\u0131sm\u0131n\u0131 kendi sunucunuzun IP adresi veya alan ad\u0131yla de\u011fi\u015ftirmeyi unutmay\u0131n. <code>alias<\/code> y\u00f6nergelerindeki yollar\u0131n do\u011fru oldu\u011fundan emin olun.<\/p>\n<h4>Yap\u0131land\u0131rmay\u0131 Etkinle\u015ftirme ve Test Etme<\/h4>\n<p>Yeni yap\u0131land\u0131rma dosyas\u0131n\u0131 etkinle\u015ftirmek i\u00e7in <code>sites-enabled<\/code> dizinine sembolik bir ba\u011f olu\u015fturun:<\/p>\n<pre><code class=\"language-bash\">sudo ln -s \/etc\/nginx\/sites-available\/myproject \/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n<p>Varsay\u0131lan Nginx yap\u0131land\u0131rmas\u0131n\u0131 devre d\u0131\u015f\u0131 b\u0131rakmak iyi bir uygulamad\u0131r:<\/p>\n<pre><code class=\"language-bash\">sudo rm \/etc\/nginx\/sites-enabled\/default<\/code><\/pre>\n<p>Nginx yap\u0131land\u0131rman\u0131zda herhangi bir s\u00f6zdizimi hatas\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t<\/code><\/pre>\n<p>E\u011fer <code>test is successful<\/code> mesaj\u0131n\u0131 al\u0131rsan\u0131z, Nginx&#8217;i yeniden ba\u015flatarak yeni yap\u0131land\u0131rmay\u0131 uygulay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo service nginx restart<\/code><\/pre>\n<p>\u015eimdi taray\u0131c\u0131n\u0131zdan sunucunuzun IP adresine veya alan ad\u0131na giderek Django uygulaman\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6rmelisiniz. Statik dosyalar\u0131n\u0131z\u0131n (CSS, JS, resimler) da d\u00fczg\u00fcn y\u00fcklendi\u011finden emin olun.<\/p>\n<h3>G\u00fcvenlik ve \u0130yile\u015ftirmeler<\/h3>\n<p>Uygulaman\u0131z\u0131n \u00fcretimde daha g\u00fcvenli ve verimli \u00e7al\u0131\u015fmas\u0131 i\u00e7in ek ad\u0131mlar atabilirsiniz.<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 (UFW) Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Ubuntu&#8217;da basit bir g\u00fcvenlik duvar\u0131 olan UFW (Uncomplicated Firewall) bulunur. Yaln\u0131zca gerekli portlar\u0131 a\u00e7arak sunucunuzun g\u00fcvenli\u011fini art\u0131rabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">sudo ufw enable # G\u00fcvenlik duvar\u0131n\u0131 etkinle\u015ftir\nsudo ufw allow ssh # SSH eri\u015fimine izin ver (22. port)\nsudo ufw allow 'Nginx HTTP' # HTTP (80. port) eri\u015fimine izin ver\n<h2>sudo ufw allow 'Nginx HTTPS' # E\u011fer SSL kullanacaksan\u0131z HTTPS (443. port) eri\u015fimine izin ver<\/h2>\nsudo ufw status # G\u00fcvenlik duvar\u0131 durumunu kontrol et<\/code><\/pre>\n<h4>SSL\/TLS Kurulumu (Let&#8217;s Encrypt ile)<\/h4>\n<p>Web sitenizi HTTPS \u00fczerinden sunmak, g\u00fcvenlik ve kullan\u0131c\u0131 g\u00fcveni a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir. Let&#8217;s Encrypt, \u00fccretsiz SSL\/TLS sertifikalar\u0131 sa\u011flar. Ubuntu 14.04 \u00fczerinde Certbot kurulumu biraz farkl\u0131l\u0131k g\u00f6sterebilir.<\/p>\n<p>1.  <strong>Certbot Kurulumu<\/strong>: Ubuntu 14.04 i\u00e7in PPA eklemek gerekebilir:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get update\n    sudo apt-get install -y software-properties-common\n    sudo add-apt-repository ppa:certbot\/certbot -y\n    sudo apt-get update\n    sudo apt-get install -y python-certbot-nginx<\/code><\/pre>\n<p>    E\u011fer Python 3 kullan\u0131yorsan\u0131z <code>python3-certbot-nginx<\/code> paketini denemeniz gerekebilir, ancak PPA&#8217;n\u0131n 14.04 i\u00e7in Python 3 deste\u011fi s\u0131n\u0131rl\u0131 olabilir. <code>python-certbot-nginx<\/code> genellikle Python 2.7 ile \u00e7al\u0131\u015f\u0131r.<\/p>\n<p>2.  <strong>Sertifika Alma<\/strong>:<\/p>\n<pre><code class=\"language-bash\">sudo certbot --nginx -d your_domain.com -d www.your_domain.com<\/code><\/pre>\n<p>    Certbot, Nginx yap\u0131land\u0131rman\u0131z\u0131 otomatik olarak g\u00fcncelleyecek ve HTTP isteklerini HTTPS&#8217;ye y\u00f6nlendirecektir. Sertifika s\u00fcresi doldu\u011funda otomatik yenileme i\u00e7in bir cron i\u015fi de ayarlayacakt\u0131r.<\/p>\n<h4>uWSGI ve Nginx Loglar\u0131<\/h4>\n<p>Uygulaman\u0131zda veya sunucunuzda sorunlar \u00e7\u0131kt\u0131\u011f\u0131nda, log dosyalar\u0131 sorun giderme i\u00e7in hayati \u00f6neme sahiptir.<br \/>\n*   <strong>uWSGI loglar\u0131<\/strong>: <code>\/var\/log\/uwsgi\/myproject.log<\/code> dosyas\u0131n\u0131 kontrol edin.<br \/>\n*   <strong>Nginx eri\u015fim loglar\u0131<\/strong>: <code>\/var\/log\/nginx\/access.log<\/code><br \/>\n*   <strong>Nginx hata loglar\u0131<\/strong>: <code>\/var\/log\/nginx\/error.log<\/code><\/p>\n<p>Bu log dosyalar\u0131n\u0131 d\u00fczenli olarak kontrol etmek, potansiyel sorunlar\u0131 erken tespit etmenize yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>Sorun Giderme<\/h3>\n<p>Kurulum s\u0131ras\u0131nda veya sonras\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz baz\u0131 yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcmleri:<\/p>\n<p>1.  <strong>Nginx 502 Bad Gateway Hatas\u0131<\/strong>:<br \/>\n    *   Bu genellikle Nginx&#8217;in uWSGI&#8217;ye ba\u011flanamad\u0131\u011f\u0131 anlam\u0131na gelir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm<\/strong>:<br \/>\n        *   uWSGI servisinin \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun (<code>sudo status uwsgi<\/code>).<br \/>\n        *   uWSGI soket dosyas\u0131n\u0131n (<code>\/var\/www\/myproject\/myproject.sock<\/code>) var oldu\u011fundan ve Nginx kullan\u0131c\u0131s\u0131n\u0131n (genellikle <code>www-data<\/code>) bu sokete eri\u015fim izinlerine sahip oldu\u011fundan emin olun. Gerekirse <code>sudo chown www-data:www-data \/var\/www\/myproject\/myproject.sock<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n.<br \/>\n        *   uWSGI loglar\u0131n\u0131 (<code>\/var\/log\/uwsgi\/myproject.log<\/code>) kontrol edin. Django uygulama hatalar\u0131 burada g\u00f6r\u00fcnebilir.<br \/>\n        *   Nginx hata loglar\u0131n\u0131 (<code>\/var\/log\/nginx\/error.log<\/code>) kontrol edin.<\/p>\n<p>2.  <strong>Statik Dosyalar Y\u00fcklenmiyor<\/strong>:<br \/>\n    *   Nginx&#8217;in statik dosyalar\u0131 bulamad\u0131\u011f\u0131 veya do\u011fru \u015fekilde yap\u0131land\u0131r\u0131lmad\u0131\u011f\u0131 anlam\u0131na gelir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm<\/strong>:<br \/>\n        *   <code>python manage.py collectstatic<\/code> komutunu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zdan ve <code>STATIC_ROOT<\/code> dizininin (<code>\/var\/www\/myproject\/static_files\/<\/code>) var oldu\u011fundan emin olun.<br \/>\n        *   Nginx yap\u0131land\u0131rman\u0131zdaki <code>location \/static\/<\/code> blo\u011funun do\u011fru <code>alias<\/code> yolunu g\u00f6sterdi\u011finden emin olun.<br \/>\n        *   Statik dosyalar\u0131n dosya izinlerini kontrol edin. Nginx kullan\u0131c\u0131s\u0131n\u0131n bu dosyalara okuma eri\u015fimi olmal\u0131d\u0131r (<code>sudo chmod -R 755 \/var\/www\/myproject\/static_files<\/code>).<br \/>\n        *   Nginx&#8217;i yeniden ba\u015flatt\u0131\u011f\u0131n\u0131zdan emin olun (<code>sudo service nginx restart<\/code>).<\/p>\n<p>3.  <strong>Django Uygulama Hatalar\u0131 (500 Internal Server Error)<\/strong>:<br \/>\n    *   Bu, Django uygulaman\u0131z\u0131n kendisinde bir hata oldu\u011fu anlam\u0131na gelir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm<\/strong>:<br \/>\n        *   uWSGI loglar\u0131n\u0131 (<code>\/var\/log\/uwsgi\/myproject.log<\/code>) kontrol edin. Django traceback&#8217;leri genellikle burada g\u00f6r\u00fcn\u00fcr.<br \/>\n        *   Django <code>settings.py<\/code> dosyas\u0131ndaki <code>DEBUG = False<\/code> ayar\u0131n\u0131 ge\u00e7ici olarak <code>DEBUG = True<\/code> yaparak daha detayl\u0131 hata mesajlar\u0131 alabilirsiniz (yaln\u0131zca sorun giderme ama\u00e7l\u0131 ve k\u0131sa s\u00fcreli\u011fine yap\u0131lmal\u0131, \u00fcretimde <code>False<\/code> olmal\u0131d\u0131r).<br \/>\n        *   Sanal ortam\u0131n do\u011fru etkinle\u015ftirildi\u011finden ve t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131n y\u00fcklendi\u011finden emin olun.<\/p>\n<p>4.  <strong><code>uwsgi.conf<\/code> Upstart Servisi Ba\u015flam\u0131yor<\/strong>:<br \/>\n    *   Upstart yap\u0131land\u0131rma dosyas\u0131ndaki s\u00f6zdizimi hatalar\u0131 veya yanl\u0131\u015f yollar nedeniyle olabilir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm<\/strong>:<br \/>\n        *   <code>\/etc\/init\/uwsgi.conf<\/code> dosyas\u0131n\u0131 dikkatlice kontrol edin. \u00d6zellikle <code>exec<\/code> sat\u0131r\u0131ndaki uWSGI yolunun ve <code>.ini<\/code> dosyas\u0131n\u0131n yolunun do\u011fru oldu\u011fundan emin olun.<br \/>\n        *   <code>sudo init-checkconf \/etc\/init\/uwsgi.conf<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak yap\u0131land\u0131rma dosyas\u0131n\u0131 kontrol edin.<br \/>\n        *   <code>sudo start uwsgi<\/code> komutunun \u00e7\u0131kt\u0131s\u0131n\u0131 ve <code>\/var\/log\/upstart\/uwsgi.log<\/code> (e\u011fer varsa) dosyas\u0131n\u0131 kontrol edin.<\/p>\n<p>Bu sorun giderme ad\u0131mlar\u0131, \u00e7o\u011fu yayg\u0131n da\u011f\u0131t\u0131m sorununu \u00e7\u00f6zmenize yard\u0131mc\u0131 olacakt\u0131r. Her zaman log dosyalar\u0131n\u0131 kontrol etmekle ba\u015flay\u0131n; onlar size sorunun k\u00f6keni hakk\u0131nda en iyi ipu\u00e7lar\u0131n\u0131 verecektir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu kapsaml\u0131 rehberde, Django uygulaman\u0131z\u0131 Ubuntu 14.04 \u00fczerinde uWSGI ve Nginx kullanarak nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011frendiniz. S\u00fcre\u00e7, temel sistem g\u00fcncelle\u015ftirmelerinden ba\u015flayarak, Django projesinin haz\u0131rlanmas\u0131, uWSGI&#8217;nin kurulumu ve bir sistem servisi olarak yap\u0131land\u0131r\u0131lmas\u0131, Nginx&#8217;in ters proxy ve statik dosya sunucusu olarak ayarlanmas\u0131 ve son olarak g\u00fcvenlik iyile\u015ftirmeleri ve sorun giderme ad\u0131mlar\u0131n\u0131 i\u00e7eriyordu.<\/p>\n<p>Bu mimari, Django uygulaman\u0131z\u0131n \u00fcretim ortam\u0131nda y\u00fcksek performans, g\u00fcvenilirlik ve \u00f6l\u00e7eklenebilirlik ile \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar. Nginx, e\u015fzamanl\u0131 ba\u011flant\u0131lar\u0131 verimli bir \u015fekilde y\u00f6netirken, statik dosyalar\u0131 do\u011frudan sunarak Django ve uWSGI \u00fczerindeki y\u00fck\u00fc azalt\u0131r. uWSGI ise Python uygulaman\u0131z ile Nginx aras\u0131nda sa\u011flam ve h\u0131zl\u0131 bir k\u00f6pr\u00fc g\u00f6revi g\u00f6r\u00fcr.<\/p>\n<p>Unutmay\u0131n ki Ubuntu 14.04 art\u0131k resmi olarak desteklenmeyen eski bir s\u00fcr\u00fcmd\u00fcr. Yeni projeler i\u00e7in daha g\u00fcncel bir LTS s\u00fcr\u00fcm\u00fc (\u00f6rne\u011fin, Ubuntu 20.04 veya 22.04) kullanman\u0131z \u015fiddetle tavsiye edilir. Ancak, mevcut bir Ubuntu 14.04 ortam\u0131nda Django uygulamalar\u0131n\u0131 da\u011f\u0131tman\u0131z gerekiyorsa, bu rehber size sa\u011flam bir yol haritas\u0131 sunacakt\u0131r. Uygulaman\u0131z\u0131n sorunsuz \u00e7al\u0131\u015fmaya devam etmesi i\u00e7in d\u00fczenli bak\u0131m, g\u00fcvenlik g\u00fcncellemeleri ve log takibi yapmay\u0131 ihmal etmeyin.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Django Uygulamalar\u0131n\u0131 uWSGI ve Nginx ile Ubuntu 14.04 \u00dczerinde Da\u011f\u0131tma\nGiri\u015f\nWeb uygulamalar\u0131n\u0131n geli\u015ftirilmesi kadar, bu uygulamalar\u0131n \u00fcr","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-32110","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>Django Uygulamalar\u0131n\u0131 uWSGI ve Nginx ile Ubuntu 14.04 \u00dczerinde Da\u011f\u0131tma - 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\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Django Uygulamalar\u0131n\u0131 uWSGI ve Nginx ile Ubuntu 14.04 \u00dczerinde Da\u011f\u0131tma\" \/>\n<meta property=\"og:description\" content=\"Django Uygulamalar\u0131n\u0131 uWSGI ve Nginx ile Ubuntu 14.04 \u00dczerinde Da\u011f\u0131tma Giri\u015f Web uygulamalar\u0131n\u0131n geli\u015ftirilmesi kadar, bu uygulamalar\u0131n \u00fcr\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-17T18:41:03+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=\"15 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Django Uygulamalar\u0131n\u0131 uWSGI ve Nginx ile Ubuntu 14.04 \u00dczerinde Da\u011f\u0131tma\",\"datePublished\":\"2025-10-17T18:41:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/\"},\"wordCount\":2259,\"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\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/\",\"name\":\"Django Uygulamalar\u0131n\u0131 uWSGI ve Nginx ile Ubuntu 14.04 \u00dczerinde Da\u011f\u0131tma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-17T18:41:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Django Uygulamalar\u0131n\u0131 uWSGI ve Nginx ile Ubuntu 14.04 \u00dczerinde Da\u011f\u0131tma\"}]},{\"@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":"Django Uygulamalar\u0131n\u0131 uWSGI ve Nginx ile Ubuntu 14.04 \u00dczerinde Da\u011f\u0131tma - 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\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/","og_locale":"tr_TR","og_type":"article","og_title":"Django Uygulamalar\u0131n\u0131 uWSGI ve Nginx ile Ubuntu 14.04 \u00dczerinde Da\u011f\u0131tma","og_description":"Django Uygulamalar\u0131n\u0131 uWSGI ve Nginx ile Ubuntu 14.04 \u00dczerinde Da\u011f\u0131tma Giri\u015f Web uygulamalar\u0131n\u0131n geli\u015ftirilmesi kadar, bu uygulamalar\u0131n \u00fcr","og_url":"https:\/\/fatihsoysal.com\/blog\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-17T18:41:03+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"15 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Django Uygulamalar\u0131n\u0131 uWSGI ve Nginx ile Ubuntu 14.04 \u00dczerinde Da\u011f\u0131tma","datePublished":"2025-10-17T18:41:03+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/"},"wordCount":2259,"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\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/","url":"https:\/\/fatihsoysal.com\/blog\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/","name":"Django Uygulamalar\u0131n\u0131 uWSGI ve Nginx ile Ubuntu 14.04 \u00dczerinde Da\u011f\u0131tma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-17T18:41:03+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/django-uygulamalarini-uwsgi-ve-nginx-ile-ubuntu-14-04-uzerinde-dagitma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Django Uygulamalar\u0131n\u0131 uWSGI ve Nginx ile Ubuntu 14.04 \u00dczerinde Da\u011f\u0131tma"}]},{"@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\/32110","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=32110"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32110\/revisions"}],"predecessor-version":[{"id":32111,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32110\/revisions\/32111"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=32110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=32110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=32110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}