{"id":39428,"date":"2026-02-21T09:40:41","date_gmt":"2026-02-21T06:40:41","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=39428"},"modified":"2026-02-21T09:40:41","modified_gmt":"2026-02-21T06:40:41","slug":"django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/","title":{"rendered":"Django, PostgreSQL, Nginx ve Gunicorn ile Debian 8 \u00dczerinde Web Uygulamas\u0131 Kurulumu"},"content":{"rendered":"<p><body><\/p>\n<h2>Django, PostgreSQL, Nginx ve Gunicorn ile Debian 8 \u00dczerinde Web Uygulamas\u0131 Kurulumu<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>Modern web uygulamalar\u0131 genellikle birden fazla bile\u015fenin uyumlu bir \u015fekilde \u00e7al\u0131\u015fmas\u0131yla hayat bulur. Bu makalede, pop\u00fcler Python tabanl\u0131 web \u00e7at\u0131s\u0131 Django&#8217;yu, g\u00fc\u00e7l\u00fc ve g\u00fcvenilir PostgreSQL veritaban\u0131 ile birlikte, y\u00fcksek performansl\u0131 Nginx web sunucusu ve Python uygulamalar\u0131 i\u00e7in bir WSGI sunucusu olan Gunicorn ile Debian 8 (Jessie) i\u015fletim sistemi \u00fczerinde nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131z. Bu mimari, geli\u015ftirme ortam\u0131ndan \u00fcretim ortam\u0131na ge\u00e7i\u015fte s\u0131kl\u0131kla tercih edilen, \u00f6l\u00e7eklenebilir ve g\u00fcvenli bir \u00e7\u00f6z\u00fcm sunar.<\/p>\n<p>Django, h\u0131zl\u0131 geli\u015ftirme imkanlar\u0131 ve &#8220;pil dahil&#8221; felsefesiyle \u00f6ne \u00e7\u0131karken, PostgreSQL veri tutarl\u0131l\u0131\u011f\u0131 ve karma\u015f\u0131k sorgular i\u00e7in m\u00fckemmel bir se\u00e7imdir. Gunicorn, Django uygulaman\u0131z\u0131n gelen istekleri verimli bir \u015fekilde i\u015flemesini sa\u011flarken, Nginx ters proxy g\u00f6revi g\u00f6rerek statik dosyalar\u0131 sunar, y\u00fck dengeleme yapar ve uygulaman\u0131z\u0131n \u00f6n\u00fcnde bir g\u00fcvenlik katman\u0131 olu\u015fturur. Debian 8, kararl\u0131l\u0131\u011f\u0131 ve geni\u015f paket deste\u011fi ile sunucu ortamlar\u0131 i\u00e7in g\u00fcvenilir bir temel sa\u011flar. Bu k\u0131lavuz, t\u00fcm bu bile\u015fenleri sorunsuz bir \u015fekilde entegre etmenize yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>Bu kuruluma ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki \u00f6n gereksinimlere sahip olman\u0131z gerekmektedir:<br \/>\n*   Debian 8 (Jessie) kurulu bir sunucu (VPS veya fiziksel sunucu).<br \/>\n*   <code>sudo<\/code> ayr\u0131cal\u0131klar\u0131na sahip, root olmayan bir kullan\u0131c\u0131 hesab\u0131 veya do\u011frudan root eri\u015fimi. G\u00fcvenlik nedenleriyle <code>sudo<\/code> kullan\u0131c\u0131s\u0131 tercih edilir.<br \/>\n*   Temel Linux komut sat\u0131r\u0131 bilgisi.<br \/>\n*   Sunucunuzun bir alan ad\u0131na sahip olmas\u0131 (\u00f6rne\u011fin, <code>alanadiniz.com<\/code>) veya en az\u0131ndan IP adresini bilmeniz gerekmektedir.<\/p>\n<h3>Sistem G\u00fcncellemesi ve Temel Paketlerin Kurulumu<\/h3>\n<p>Kuruluma ba\u015flamadan \u00f6nce, sisteminizin g\u00fcncel oldu\u011fundan ve gerekli temel paketlerin kurulu oldu\u011fundan emin olmal\u0131y\u0131z. Bu, olas\u0131 ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 \u00f6nlemeye yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<p>\u00d6ncelikle, paket listelerinizi g\u00fcncelleyin ve kurulu paketleri y\u00fckseltin:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get update\nsudo apt-get upgrade -y<\/code><\/pre>\n<p>Ard\u0131ndan, Python uygulamalar\u0131, PostgreSQL ve Nginx i\u00e7in gerekli olan baz\u0131 temel geli\u015ftirme ara\u00e7lar\u0131n\u0131 ve k\u00fct\u00fcphaneleri kural\u0131m. Debian 8&#8217;de Python 3.4 varsay\u0131lan olarak bulunur ve \u00e7o\u011fu modern Django projesi i\u00e7in Python 3 kullanmak daha iyidir.<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install -y build-essential libpq-dev python3-dev python3-pip python3-venv nginx<\/code><\/pre>\n<p>*   <code>build-essential<\/code>: Derleme ara\u00e7lar\u0131n\u0131 (gcc, g++ vb.) i\u00e7erir. Python paketlerinin derlenmesi i\u00e7in gereklidir.<br \/>\n*   <code>libpq-dev<\/code>: PostgreSQL istemci k\u00fct\u00fcphaneleri ve ba\u015fl\u0131k dosyalar\u0131n\u0131 i\u00e7erir. Python&#8217;\u0131n <code>psycopg2<\/code> gibi PostgreSQL ba\u011fda\u015ft\u0131r\u0131c\u0131lar\u0131n\u0131 derlemesi i\u00e7in gereklidir.<br \/>\n*   <code>python3-dev<\/code>: Python 3 i\u00e7in geli\u015ftirme ba\u015fl\u0131k dosyalar\u0131n\u0131 ve statik k\u00fct\u00fcphaneleri i\u00e7erir.<br \/>\n*   <code>python3-pip<\/code>: Python 3 i\u00e7in paket y\u00f6neticisi <code>pip<\/code>&#8216;i kurar.<br \/>\n*   <code>python3-venv<\/code>: Python 3 i\u00e7in sanal ortam olu\u015fturma mod\u00fcl\u00fcn\u00fc sa\u011flar.<br \/>\n*   <code>nginx<\/code>: Nginx web sunucusunu kurar.<\/p>\n<h3>PostgreSQL Veritaban\u0131n\u0131n Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Django projeniz i\u00e7in bir veritaban\u0131na ihtiyac\u0131m\u0131z var. PostgreSQL, g\u00fc\u00e7l\u00fc \u00f6zellikleri ve g\u00fcvenilirli\u011fi nedeniyle pop\u00fcler bir se\u00e7imdir.<\/p>\n<h4>PostgreSQL Kurulumu<\/h4>\n<p>PostgreSQL sunucusunu kurmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install -y postgresql postgresql-contrib<\/code><\/pre>\n<p>Bu komut, PostgreSQL sunucusunu ve baz\u0131 ek yard\u0131mc\u0131 programlar\u0131 kuracakt\u0131r. Kurulum tamamland\u0131ktan sonra PostgreSQL servisi otomatik olarak ba\u015flayacakt\u0131r.<\/p>\n<h4>Veritaban\u0131 Kullan\u0131c\u0131s\u0131 ve Veritaban\u0131 Olu\u015fturma<\/h4>\n<p>Varsay\u0131lan olarak, PostgreSQL, <code>postgres<\/code> ad\u0131nda bir y\u00f6netici kullan\u0131c\u0131s\u0131 olu\u015fturur. Bu kullan\u0131c\u0131ya ge\u00e7i\u015f yaparak yeni bir veritaban\u0131 ve kullan\u0131c\u0131 olu\u015fturaca\u011f\u0131z.<\/p>\n<pre><code class=\"language-bash\">sudo -i -u postgres<\/code><\/pre>\n<p>\u015eimdi PostgreSQL komut istemine eri\u015fmek i\u00e7in <code>psql<\/code> yaz\u0131n:<\/p>\n<pre><code class=\"language-bash\">psql<\/code><\/pre>\n<p>PostgreSQL istemcisi i\u00e7inde, Django projeniz i\u00e7in yeni bir veritaban\u0131 ve bu veritaban\u0131na eri\u015fecek bir kullan\u0131c\u0131 olu\u015ftural\u0131m. <code>myprojectdb<\/code> ve <code>myprojectuser<\/code> yerine kendi istedi\u011finiz isimleri kullanabilirsiniz. <code>my_strong_password<\/code> yerine g\u00fc\u00e7l\u00fc bir parola belirlemeyi unutmay\u0131n.<\/p>\n<pre><code class=\"language-sql\">CREATE DATABASE myprojectdb;\nCREATE USER myprojectuser WITH PASSWORD 'my_strong_password';\nALTER ROLE myprojectuser SET client_encoding TO 'utf8';\nALTER ROLE myprojectuser SET default_transaction_isolation TO 'read committed';\nALTER ROLE myprojectuser SET timezone TO 'UTC';\nGRANT ALL PRIVILEGES ON DATABASE myprojectdb TO myprojectuser;<\/code><\/pre>\n<p>Bu komutlar s\u0131ras\u0131yla:<br \/>\n1.  <code>myprojectdb<\/code> ad\u0131nda bir veritaban\u0131 olu\u015fturur.<br \/>\n2.  <code>myprojectuser<\/code> ad\u0131nda ve belirlenen parola ile bir kullan\u0131c\u0131 olu\u015fturur.<br \/>\n3.  Kullan\u0131c\u0131n\u0131n varsay\u0131lan istemci kodlamas\u0131n\u0131 UTF-8 olarak ayarlar.<br \/>\n4.  Kullan\u0131c\u0131n\u0131n varsay\u0131lan i\u015flem izolasyon seviyesini &#8220;read committed&#8221; olarak ayarlar (Django i\u00e7in \u00f6nerilen).<br \/>\n5.  Kullan\u0131c\u0131n\u0131n varsay\u0131lan zaman dilimini UTC olarak ayarlar.<br \/>\n6.  <code>myprojectuser<\/code> kullan\u0131c\u0131s\u0131na <code>myprojectdb<\/code> veritaban\u0131 \u00fczerinde t\u00fcm ayr\u0131cal\u0131klar\u0131 verir.<\/p>\n<p>Veritaban\u0131 olu\u015fturma i\u015flemini tamamlad\u0131ktan sonra, <code>\\q<\/code> yazarak <code>psql<\/code> isteminden \u00e7\u0131k\u0131n ve ard\u0131ndan <code>exit<\/code> yazarak <code>postgres<\/code> kullan\u0131c\u0131s\u0131ndan normal <code>sudo<\/code> kullan\u0131c\u0131n\u0131za geri d\u00f6n\u00fcn:<\/p>\n<pre><code class=\"language-sql\">\\q\nexit<\/code><\/pre>\n<h3>Python ve Sanal Ortam Kurulumu<\/h3>\n<p>Django projenizi sistem genelindeki Python paketlerinden izole etmek i\u00e7in bir Python sanal ortam\u0131 kullanmak en iyi uygulamad\u0131r. Bu, ba\u011f\u0131ml\u0131l\u0131k \u00e7ak\u0131\u015fmalar\u0131n\u0131 \u00f6nler ve projenizin ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00f6netmeyi kolayla\u015ft\u0131r\u0131r.<\/p>\n<h4>Python ve pip Kurulumu<\/h4>\n<p>Yukar\u0131daki ad\u0131mda <code>python3-pip<\/code> ve <code>python3-venv<\/code> paketlerini zaten kurmu\u015ftuk. Bu, Python 3.4 ve <code>pip<\/code>&#8216;in haz\u0131r oldu\u011fu anlam\u0131na gelir.<\/p>\n<h4>Sanal Ortam Olu\u015fturma<\/h4>\n<p>\u015eimdi Django projenizi bar\u0131nd\u0131racak bir dizin olu\u015ftural\u0131m ve bu dizin i\u00e7inde bir sanal ortam kural\u0131m. Genellikle <code>\/opt<\/code> dizini, elle kurulan yaz\u0131l\u0131mlar i\u00e7in kullan\u0131l\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo mkdir \/opt\/myproject\nsudo chown -R $USER:$USER \/opt\/myproject # Kullan\u0131c\u0131n\u0131za dizin \u00fczerinde tam yetki verin\ncd \/opt\/myproject<\/code><\/pre>\n<p>\u015eimdi sanal ortam\u0131 olu\u015ftural\u0131m ve etkinle\u015ftirelim:<\/p>\n<pre><code class=\"language-bash\">python3 -m venv venv\nsource venv\/bin\/activate<\/code><\/pre>\n<p>Komut sat\u0131r\u0131n\u0131z\u0131n ba\u015f\u0131nda <code>(venv)<\/code> ifadesini g\u00f6rmelisiniz. Bu, sanal ortam\u0131n etkinle\u015ftirildi\u011fini g\u00f6sterir. Art\u0131k bu ortamda kuraca\u011f\u0131n\u0131z t\u00fcm Python paketleri sistem genelini etkilemeyecektir.<\/p>\n<h3>Django Projesinin Olu\u015fturulmas\u0131 ve Yap\u0131land\u0131r\u0131lmas\u0131<\/h3>\n<p>Sanal ortam\u0131m\u0131z haz\u0131r oldu\u011funa g\u00f6re, Django projemizi olu\u015fturabilir ve PostgreSQL ile ba\u011flant\u0131 kuracak \u015fekilde yap\u0131land\u0131rabiliriz.<\/p>\n<h4>Django Kurulumu ve Proje Olu\u015fturma<\/h4>\n<p>Sanal ortam etkinle\u015ftirilmi\u015fken, Django, <code>psycopg2-binary<\/code> (PostgreSQL adapt\u00f6r\u00fc) ve Gunicorn&#8217;\u0131 kural\u0131m:<\/p>\n<pre><code class=\"language-bash\">pip install django psycopg2-binary gunicorn<\/code><\/pre>\n<p>\u015eimdi yeni bir Django projesi olu\u015ftural\u0131m. Projenizin ad\u0131n\u0131 <code>myproject<\/code> olarak varsay\u0131yoruz, ancak istedi\u011finiz bir ad\u0131 kullanabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">django-admin startproject myproject .<\/code><\/pre>\n<p>Bu komut, ge\u00e7erli dizinde (<code>\/opt\/myproject<\/code>) bir Django projesi olu\u015fturacakt\u0131r.<\/p>\n<h4>PostgreSQL Ba\u011flant\u0131s\u0131n\u0131n Yap\u0131land\u0131r\u0131lmas\u0131<\/h4>\n<p>Django projenizin veritaban\u0131 ba\u011flant\u0131 ayarlar\u0131n\u0131 d\u00fczenlemek i\u00e7in <code>myproject\/settings.py<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">nano myproject\/settings.py<\/code><\/pre>\n<p><code>DATABASES<\/code> b\u00f6l\u00fcm\u00fcn\u00fc bulun ve a\u015fa\u011f\u0131daki gibi d\u00fczenleyin (kendi veritaban\u0131 ad\u0131n\u0131z\u0131, kullan\u0131c\u0131 ad\u0131n\u0131z\u0131 ve parolan\u0131z\u0131 kullanmay\u0131 unutmay\u0131n):<\/p>\n<pre><code class=\"language-python\">DATABASES = {\n    'default': {\n        'ENGINE': 'django.db.backends.postgresql',\n        'NAME': 'myprojectdb',\n        'USER': 'myprojectuser',\n        'PASSWORD': 'my_strong_password',\n        'HOST': 'localhost',\n        'PORT': '',\n    }\n}<\/code><\/pre>\n<p>Ayr\u0131ca, <code>ALLOWED_HOSTS<\/code> ayar\u0131n\u0131 da g\u00fcncellemeniz gerekecektir. Bu, Django uygulaman\u0131z\u0131n hangi host adlar\u0131 \u00fczerinden eri\u015filebilir olaca\u011f\u0131n\u0131 belirler. Sunucunuzun IP adresini ve\/veya alan ad\u0131n\u0131z\u0131 ekleyin:<\/p>\n<pre><code class=\"language-python\">ALLOWED_HOSTS = ['your_server_ip_address', 'your_domain.com', 'www.your_domain.com']<\/code><\/pre>\n<h4>Statik Dosyalar\u0131n Y\u00f6netimi<\/h4>\n<p>Django, \u00fcretim ortam\u0131nda statik dosyalar\u0131 (CSS, JavaScript, resimler) do\u011frudan sunmaz. Bunun yerine, Nginx gibi bir web sunucusunun bu dosyalar\u0131 sunmas\u0131 i\u00e7in belirli bir konuma toplar\u0131z. <code>settings.py<\/code> dosyas\u0131nda <code>STATIC_URL<\/code> alt\u0131na a\u015fa\u011f\u0131daki sat\u0131r\u0131 ekleyin:<\/p>\n<pre><code class=\"language-python\">STATIC_ROOT = os.path.join(BASE_DIR, 'static')<\/code><\/pre>\n<p>Bu, Django&#8217;nun t\u00fcm statik dosyalar\u0131n\u0131 projenizin k\u00f6k dizinindeki <code>static<\/code> adl\u0131 bir klas\u00f6rde toplayaca\u011f\u0131n\u0131 belirtir.<\/p>\n<p>De\u011fi\u015fiklikleri kaydedip <code>settings.py<\/code> dosyas\u0131n\u0131 kapat\u0131n (CTRL+X, Y, Enter).<\/p>\n<p>\u015eimdi Django veritaban\u0131 ge\u00e7i\u015flerini uygulay\u0131n ve statik dosyalar\u0131 toplay\u0131n:<\/p>\n<pre><code class=\"language-bash\">python manage.py makemigrations\npython manage.py migrate\npython manage.py collectstatic<\/code><\/pre>\n<p><code>collectstatic<\/code> komutu, statik dosyalar\u0131 toplamak isteyip istemedi\u011finizi soracakt\u0131r; <code>yes<\/code> yazarak onaylay\u0131n.<\/p>\n<p>\u0130sterseniz, bir y\u00f6netici kullan\u0131c\u0131s\u0131 da olu\u015fturabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">python manage.py createsuperuser<\/code><\/pre>\n<h4>Django Uygulamas\u0131n\u0131n Test Edilmesi<\/h4>\n<p>\u015eimdiye kadar her \u015feyin yolunda gidip gitmedi\u011fini kontrol etmek i\u00e7in Django&#8217;nun geli\u015ftirme sunucusunu \u00e7al\u0131\u015ft\u0131rabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">python manage.py runserver 0.0.0.0:8000<\/code><\/pre>\n<p>Taray\u0131c\u0131n\u0131zda <code>http:\/\/your_server_ip_address:8000<\/code> adresine giderek Django&#8217;nun varsay\u0131lan &#8220;It worked!&#8221; sayfas\u0131n\u0131 g\u00f6rmelisiniz. E\u011fer g\u00f6r\u00fcyorsan\u0131z, Django projeniz ba\u015far\u0131yla kurulmu\u015f ve veritaban\u0131na ba\u011flanm\u0131\u015ft\u0131r. Testi bitirdi\u011finizde, sunucuyu durdurmak i\u00e7in <code>CTRL+C<\/code> tu\u015flar\u0131na bas\u0131n.<\/p>\n<p>Sanal ortamdan \u00e7\u0131kmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">deactivate<\/code><\/pre>\n<p>Ancak Gunicorn ve Nginx kurulumu i\u00e7in sanal ortamda kalman\u0131z daha iyi olabilir, \u00e7\u00fcnk\u00fc Gunicorn&#8217;\u0131 test etmek i\u00e7in tekrar etkinle\u015ftirmeniz gerekecek.<\/p>\n<h3>Gunicorn Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Gunicorn (Green Unicorn), bir Python WSGI HTTP sunucusudur. Django gibi Python web uygulamalar\u0131n\u0131n gelen HTTP isteklerini i\u015flemesini sa\u011flar.<\/p>\n<h4>Gunicorn Kurulumu<\/h4>\n<p>Gunicorn&#8217;\u0131 daha \u00f6nce sanal ortam\u0131n\u0131za <code>pip install django psycopg2-binary gunicorn<\/code> komutuyla zaten kurmu\u015ftuk.<\/p>\n<h4>Gunicorn Test Edilmesi<\/h4>\n<p>Sanal ortam\u0131n\u0131z\u0131n etkin oldu\u011fundan emin olun:<\/p>\n<pre><code class=\"language-bash\">cd \/opt\/myproject\nsource venv\/bin\/activate<\/code><\/pre>\n<p>\u015eimdi Gunicorn&#8217;\u0131 do\u011frudan Django projenizle test edelim. <code>myproject.wsgi:application<\/code> ifadesi, Gunicorn&#8217;\u0131n projenizin <code>wsgi.py<\/code> dosyas\u0131ndaki <code>application<\/code> objesini bulmas\u0131n\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">gunicorn --bind 0.0.0.0:8000 myproject.wsgi:application<\/code><\/pre>\n<p>Taray\u0131c\u0131n\u0131zda <code>http:\/\/your_server_ip_address:8000<\/code> adresine tekrar gidin. Django sayfas\u0131n\u0131 g\u00f6rmeye devam etmelisiniz. Bu, Gunicorn&#8217;\u0131n Django uygulaman\u0131z\u0131 ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131 g\u00f6sterir. Testi bitirdi\u011finizde <code>CTRL+C<\/code> ile Gunicorn&#8217;\u0131 durdurun.<\/p>\n<h4>Gunicorn Systemd Servisi Olu\u015fturma<\/h4>\n<p>Gunicorn&#8217;\u0131n s\u00fcrekli \u00e7al\u0131\u015fmas\u0131n\u0131 ve sunucu yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda otomatik olarak ba\u015flamas\u0131n\u0131 sa\u011flamak i\u00e7in bir <code>systemd<\/code> servisi olu\u015fturaca\u011f\u0131z.<\/p>\n<p>Sanal ortamdan \u00e7\u0131k\u0131n:<\/p>\n<pre><code class=\"language-bash\">deactivate<\/code><\/pre>\n<p>\u015eimdi <code>\/etc\/systemd\/system\/gunicorn.service<\/code> ad\u0131nda yeni bir dosya olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/systemd\/system\/gunicorn.service<\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7ine a\u015fa\u011f\u0131daki i\u00e7eri\u011fi yap\u0131\u015ft\u0131r\u0131n. <code>User<\/code> ve <code>Group<\/code> de\u011ferlerini kendi <code>sudo<\/code> kullan\u0131c\u0131n\u0131zla de\u011fi\u015ftirin. <code>WorkingDirectory<\/code> ve <code>ExecStart<\/code> yollar\u0131n\u0131n do\u011fru oldu\u011fundan emin olun. <code>ExecStart<\/code> komutu, Gunicorn&#8217;\u0131n Unix soketi \u00fczerinden \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar. Bu, Nginx ile daha g\u00fcvenli ve performansl\u0131 bir ba\u011flant\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-ini\">[Unit]\nDescription=Gunicorn instance to serve myproject\nAfter=network.target\n\n[Service]\nUser=your_username\nGroup=your_username\nWorkingDirectory=\/opt\/myproject\nExecStart=\/opt\/myproject\/venv\/bin\/gunicorn --workers 3 --bind unix:\/run\/gunicorn.sock myproject.wsgi:application\nRestart=always\n\n[Install]\nWantedBy=multi-user.target<\/code><\/pre>\n<p>*   <code>User<\/code> ve <code>Group<\/code>: Gunicorn i\u015fleminin hangi kullan\u0131c\u0131 ve grup alt\u0131nda \u00e7al\u0131\u015faca\u011f\u0131n\u0131 belirtir. Kendi <code>sudo<\/code> kullan\u0131c\u0131n\u0131z\u0131 kullanmal\u0131s\u0131n\u0131z.<br \/>\n*   <code>WorkingDirectory<\/code>: Django projenizin k\u00f6k dizinidir.<br \/>\n<em>   <code>ExecStart<\/code>: Gunicorn&#8217;\u0131 ba\u015flatan komuttur. <code>--workers 3<\/code> ile 3 adet Gunicorn worker s\u00fcreci ba\u015flat\u0131l\u0131r (genellikle <code>2 <\/em> CPU_\u00e7ekirdek_say\u0131s\u0131 + 1<\/code> form\u00fcl\u00fc kullan\u0131l\u0131r). <code>--bind unix:\/run\/gunicorn.sock<\/code> ile Gunicorn, bir Unix soketi \u00fczerinden dinleme yapar.<br \/>\n*   <code>Restart=always<\/code>: Gunicorn herhangi bir nedenle \u00e7\u00f6kerse otomatik olarak yeniden ba\u015flat\u0131lmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>Dosyay\u0131 kaydedip kapat\u0131n.<\/p>\n<p>\u015eimdi <code>systemd<\/code>&#8216;ye yeni servisi tan\u0131tal\u0131m ve ba\u015flatal\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl daemon-reload\nsudo systemctl start gunicorn\nsudo systemctl enable gunicorn<\/code><\/pre>\n<p>Gunicorn servisinin durumunu kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status gunicorn<\/code><\/pre>\n<p>Durum <code>active (running)<\/code> olarak g\u00f6r\u00fcnmeli ve herhangi bir hata olmamal\u0131d\u0131r. Ayr\u0131ca <code>\/run\/gunicorn.sock<\/code> dosyas\u0131n\u0131n olu\u015ftu\u011funu da kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">ls -l \/run\/gunicorn.sock<\/code><\/pre>\n<p>Bu dosya mevcutsa, Gunicorn ba\u015far\u0131yla \u00e7al\u0131\u015f\u0131yor demektir.<\/p>\n<h3>Nginx Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Nginx, y\u00fcksek performansl\u0131 bir web sunucusu ve ters proxy&#8217;dir. Gelen HTTP isteklerini Gunicorn&#8217;a y\u00f6nlendirecek, statik dosyalar\u0131 do\u011frudan sunacak ve y\u00fck dengeleme gibi g\u00f6revleri \u00fcstlenecektir.<\/p>\n<h4>Nginx Kurulumu<\/h4>\n<p>Nginx&#8217;i daha \u00f6nce <code>apt-get install nginx<\/code> komutuyla kurmu\u015ftuk.<\/p>\n<h4>Nginx Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Nginx&#8217;i Django projenizle \u00e7al\u0131\u015facak \u015fekilde yap\u0131land\u0131rmam\u0131z gerekiyor. Yeni bir Nginx yap\u0131land\u0131rma dosyas\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/myproject<\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7ine a\u015fa\u011f\u0131daki i\u00e7eri\u011fi yap\u0131\u015ft\u0131r\u0131n. <code>your_domain.com<\/code> ve <code>www.your_domain.com<\/code> yerine kendi alan ad\u0131n\u0131z\u0131 veya sunucunuzun IP adresini kullan\u0131n.<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    server_name your_domain.com www.your_domain.com your_server_ip_address;\n\n    location = \/favicon.ico { access_log off; log_not_found off; }\n    location \/static\/ {\n        root \/opt\/myproject;\n    }\n\n    location \/ {\n        include proxy_params;\n        proxy_pass http:\/\/unix:\/run\/gunicorn.sock;\n    }\n}<\/code><\/pre>\n<p>*   <code>listen 80<\/code>: Nginx&#8217;in 80 numaral\u0131 porttan (HTTP) gelen istekleri dinlemesini sa\u011flar.<br \/>\n*   <code>server_name<\/code>: Alan ad\u0131n\u0131z\u0131 veya IP adresinizi belirtir. Nginx bu isimler i\u00e7in gelen istekleri bu yap\u0131land\u0131rma blo\u011funa y\u00f6nlendirir.<br \/>\n*   <code>location \/static\/<\/code>: <code>\/static\/<\/code> ile ba\u015flayan URL&#8217;ler i\u00e7in Nginx&#8217;in <code>\/opt\/myproject\/static<\/code> dizinindeki dosyalar\u0131 do\u011frudan sunmas\u0131n\u0131 sa\u011flar. Bu, statik dosyalar\u0131n Gunicorn&#8217;a gitmesini engelleyerek performans\u0131 art\u0131r\u0131r.<br \/>\n*   <code>location \/<\/code>: Di\u011fer t\u00fcm istekler i\u00e7in Nginx, <code>proxy_params<\/code>&#8216;i dahil ederek ve istekleri Unix soketi \u00fczerinden Gunicorn&#8217;a (<code>http:\/\/unix:\/run\/gunicorn.sock<\/code>) y\u00f6nlendirerek bir ters proxy g\u00f6revi g\u00f6r\u00fcr.<\/p>\n<p>Dosyay\u0131 kaydedip kapat\u0131n.<\/p>\n<p>\u015eimdi bu yap\u0131land\u0131rma dosyas\u0131n\u0131 etkinle\u015ftirmek i\u00e7in <code>sites-enabled<\/code> dizinine bir sembolik ba\u011flant\u0131 olu\u015ftural\u0131m ve varsay\u0131lan Nginx yap\u0131land\u0131rmas\u0131n\u0131 kald\u0131ral\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo ln -s \/etc\/nginx\/sites-available\/myproject \/etc\/nginx\/sites-enabled\/\nsudo rm \/etc\/nginx\/sites-enabled\/default<\/code><\/pre>\n<h4>Nginx Statik Dosya Yap\u0131land\u0131rmas\u0131<\/h4>\n<p><code>location \/static\/<\/code> blo\u011funda <code>root \/opt\/myproject;<\/code> olarak belirttik. Bu, Nginx&#8217;in <code>\/opt\/myproject\/static<\/code> yolunu arayaca\u011f\u0131 anlam\u0131na gelir. <code>collectstatic<\/code> komutuyla statik dosyalar\u0131m\u0131z\u0131 zaten <code>\/opt\/myproject\/static<\/code> dizinine toplam\u0131\u015ft\u0131k. Dolay\u0131s\u0131yla bu yap\u0131land\u0131rma do\u011fru \u00e7al\u0131\u015facakt\u0131r.<\/p>\n<h4>Nginx&#8217;i Yeniden Ba\u015flatma<\/h4>\n<p>Yeni Nginx yap\u0131land\u0131rmas\u0131n\u0131n ge\u00e7erli olup olmad\u0131\u011f\u0131n\u0131 kontrol edelim:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t<\/code><\/pre>\n<p>E\u011fer <code>syntax is ok<\/code> ve <code>test is successful<\/code> mesajlar\u0131n\u0131 g\u00f6r\u00fcyorsan\u0131z, yap\u0131land\u0131rma dosyan\u0131zda bir hata yok demektir. \u015eimdi Nginx&#8217;i yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart nginx<\/code><\/pre>\n<p>Taray\u0131c\u0131n\u0131zda <code>http:\/\/your_domain.com<\/code> veya <code>http:\/\/your_server_ip_address<\/code> adresine gidin. Django uygulaman\u0131z\u0131n Nginx \u00fczerinden eri\u015filebilir olmas\u0131 gerekir. E\u011fer her \u015fey do\u011fru kurulduysa, Django&#8217;nun &#8220;It worked!&#8221; sayfas\u0131n\u0131 veya kendi uygulaman\u0131z\u0131n ana sayfas\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<h3>G\u00fcvenlik \u0130yile\u015ftirmeleri<\/h3>\n<p>Sunucunuzu daha g\u00fcvenli hale getirmek i\u00e7in bir g\u00fcvenlik duvar\u0131 yap\u0131land\u0131rmak iyi bir uygulamad\u0131r. Debian 8&#8217;de <code>ufw<\/code> (Uncomplicated Firewall) kullanabiliriz.<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 (UFW) Yap\u0131land\u0131rmas\u0131<\/h4>\n<p><code>ufw<\/code>&#8216;yi kurun:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install -y ufw<\/code><\/pre>\n<p>\u015eimdi Nginx (HTTP), HTTPS (e\u011fer gelecekte SSL kuracaksan\u0131z) ve SSH ba\u011flant\u0131lar\u0131na izin verin ve g\u00fcvenlik duvar\u0131n\u0131 etkinle\u015ftirin:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 'Nginx HTTP'\nsudo ufw allow 'Nginx HTTPS' # SSL kurmay\u0131 planl\u0131yorsan\u0131z \u015fimdiden ekleyebilirsiniz\nsudo ufw allow 'OpenSSH'\nsudo ufw enable<\/code><\/pre>\n<p><code>ufw enable<\/code> komutunu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, SSH ba\u011flant\u0131n\u0131z\u0131n kesilmemesi i\u00e7in bir uyar\u0131 alabilirsiniz. <code>y<\/code> yazarak onaylay\u0131n.<\/p>\n<p>G\u00fcvenlik duvar\u0131n\u0131n durumunu kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo ufw status<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da HTTP (80), HTTPS (443) ve SSH (22) portlar\u0131n\u0131n izinli oldu\u011funu g\u00f6rmelisiniz.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Tebrikler! Django projenizi PostgreSQL veritaban\u0131, Gunicorn WSGI sunucusu ve Nginx ters proxy ile Debian 8 \u00fczerinde ba\u015far\u0131yla kurdunuz ve yap\u0131land\u0131rd\u0131n\u0131z. Bu kurulum, web uygulaman\u0131z i\u00e7in sa\u011flam, \u00f6l\u00e7eklenebilir ve g\u00fcvenli bir temel olu\u015fturur.<\/p>\n<p>Bu makalede ele ald\u0131\u011f\u0131m\u0131z ad\u0131mlar, Django uygulaman\u0131z\u0131 geli\u015ftirme a\u015famas\u0131ndan \u00fcretim ortam\u0131na ta\u015f\u0131mak i\u00e7in gereken temel bile\u015fenleri kapsar. \u0130leriye d\u00f6n\u00fck olarak, uygulaman\u0131z\u0131n g\u00fcvenli\u011fini ve performans\u0131n\u0131 daha da art\u0131rmak i\u00e7in a\u015fa\u011f\u0131daki konular\u0131 ara\u015ft\u0131rmay\u0131 d\u00fc\u015f\u00fcnebilirsiniz:<\/p>\n<p>*   <strong>SSL\/TLS Sertifikas\u0131 (HTTPS):<\/strong> Let&#8217;s Encrypt ile \u00fccretsiz SSL sertifikas\u0131 alarak Nginx&#8217;i HTTPS \u00fczerinden hizmet verecek \u015fekilde yap\u0131land\u0131rmak, veri iletimini \u015fifreleyerek g\u00fcvenli\u011fi art\u0131racakt\u0131r.<br \/>\n*   <strong>Django G\u00fcvenlik Ayarlar\u0131:<\/strong> <code>settings.py<\/code> dosyas\u0131ndaki <code>SECRET_KEY<\/code>&#8216;i g\u00fcvenli bir \u015fekilde y\u00f6netmek, hata ay\u0131klama modunu kapatmak (<code>DEBUG = False<\/code>), <code>CSRF_COOKIE_SECURE<\/code>, <code>SESSION_COOKIE_SECURE<\/code> gibi ayarlar\u0131 etkinle\u015ftirmek.<br \/>\n*   <strong>Gunicorn \u0130yile\u015ftirmeleri:<\/strong> Worker say\u0131s\u0131n\u0131 sunucunuzun kaynaklar\u0131na g\u00f6re ayarlamak, <code>timeout<\/code> ayarlar\u0131n\u0131 optimize etmek.<br \/>\n*   <strong>Log Y\u00f6netimi:<\/strong> Nginx ve Gunicorn loglar\u0131n\u0131 izlemek ve y\u00f6netmek i\u00e7in merkezi bir loglama \u00e7\u00f6z\u00fcm\u00fc kullanmak.<br \/>\n*   <strong>Yedekleme:<\/strong> Veritaban\u0131 ve uygulama dosyalar\u0131n\u0131z i\u00e7in d\u00fczenli yedekleme stratejileri olu\u015fturmak.<br \/>\n*   <strong>Monit\u00f6ring:<\/strong> Sunucu kaynaklar\u0131n\u0131 (CPU, RAM, disk) ve uygulama performans\u0131n\u0131 izlemek i\u00e7in ara\u00e7lar kullanmak.<\/p>\n<p>Bu entegrasyonla, Django uygulaman\u0131z art\u0131k d\u00fcnya genelinden eri\u015filebilir ve g\u00fcvenilir bir \u015fekilde hizmet vermeye haz\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Django, PostgreSQL, Nginx ve Gunicorn ile Debian 8 \u00dczerinde Web Uygulamas\u0131 Kurulumu\nGiri\u015f\nModern web uygulamalar\u0131 genellikle birden fazla bile\u015fe","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":[241],"tags":[],"class_list":{"0":"post-39428","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-linux","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, PostgreSQL, Nginx ve Gunicorn ile Debian 8 \u00dczerinde Web Uygulamas\u0131 Kurulumu - 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-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Django, PostgreSQL, Nginx ve Gunicorn ile Debian 8 \u00dczerinde Web Uygulamas\u0131 Kurulumu\" \/>\n<meta property=\"og:description\" content=\"Django, PostgreSQL, Nginx ve Gunicorn ile Debian 8 \u00dczerinde Web Uygulamas\u0131 Kurulumu Giri\u015f Modern web uygulamalar\u0131 genellikle birden fazla bile\u015fe\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-21T06:40:41+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=\"14 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Django, PostgreSQL, Nginx ve Gunicorn ile Debian 8 \u00dczerinde Web Uygulamas\u0131 Kurulumu\",\"datePublished\":\"2026-02-21T06:40:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/\"},\"wordCount\":2284,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Linux\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/\",\"name\":\"Django, PostgreSQL, Nginx ve Gunicorn ile Debian 8 \u00dczerinde Web Uygulamas\u0131 Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-21T06:40:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Django, PostgreSQL, Nginx ve Gunicorn ile Debian 8 \u00dczerinde Web Uygulamas\u0131 Kurulumu\"}]},{\"@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, PostgreSQL, Nginx ve Gunicorn ile Debian 8 \u00dczerinde Web Uygulamas\u0131 Kurulumu - 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-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/","og_locale":"tr_TR","og_type":"article","og_title":"Django, PostgreSQL, Nginx ve Gunicorn ile Debian 8 \u00dczerinde Web Uygulamas\u0131 Kurulumu","og_description":"Django, PostgreSQL, Nginx ve Gunicorn ile Debian 8 \u00dczerinde Web Uygulamas\u0131 Kurulumu Giri\u015f Modern web uygulamalar\u0131 genellikle birden fazla bile\u015fe","og_url":"https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-21T06:40:41+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"14 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Django, PostgreSQL, Nginx ve Gunicorn ile Debian 8 \u00dczerinde Web Uygulamas\u0131 Kurulumu","datePublished":"2026-02-21T06:40:41+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/"},"wordCount":2284,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Linux"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/","url":"https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/","name":"Django, PostgreSQL, Nginx ve Gunicorn ile Debian 8 \u00dczerinde Web Uygulamas\u0131 Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-21T06:40:41+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/django-postgresql-nginx-ve-gunicorn-ile-debian-8-uzerinde-web-uygulamasi-kurulumu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Django, PostgreSQL, Nginx ve Gunicorn ile Debian 8 \u00dczerinde Web Uygulamas\u0131 Kurulumu"}]},{"@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\/39428","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=39428"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39428\/revisions"}],"predecessor-version":[{"id":39429,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39428\/revisions\/39429"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=39428"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=39428"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=39428"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}