Django Tabanlı Web Sitesini Yayınlamak

Kayıt Tarihi:

Son Güncelleme:

Özet:

Django tabanlı bir site geliştirdikten sonra bunu genel erişime açmak için izleyebileceğiniz bazı yöntemler var, bu yazımda bunun için en yaygın yöntemleri açıklıyorum.

Anahtar Kelimeler: Apache · AWS · Django · Gunicorn · Heroku · mod_wsgi · Nginx

Bin bir emek verip ilk defa bir Django sitesi geliştirdiniz ve yerel sunucunuzda sorunsuz şekilde test ettiniz diyelim, bunu gerçek bir sunucuya yüklemek istediğinizde öğreneceğiniz daha çok şeyin var olduğunu keşfedersiniz (bu konuda yazılmış kitap var). Gerçekten Django tabanlı web sitesini internette yayınlamak için klasik web hosting yöntemlerini biraz aşmanız gerekir. Geleneksel web barındırma hizmetlerini kullanmaya alışıksanız bilirsiniz, orada her şey hazırdır ve sunucu sizden yayınlanacak sitenizin dosyalarını beklemektedir. Django sitesini barındırırken senaryo böyle değildir, bir çok şey sizin elinize bakar.

Yine de karamsar olmayın, bazı işlemleri otomatize etmiş olan barındırma sağlayıcıları var artık, biraz da olsa işleriniz kolaylaşmış durumda. Bu yazımda Django sitesi barındırmak için yaygın bir kaç yöntemden bahsedeceğim.

Bahsedeceğim ilk yöntem Django sitesini Heroku ile barındırma yöntemi. Heroku firması uzun zamandır var olan bir bulut bilişim firması ve günümüzde Django barındırma konusunda yaygın olarak kullanılıyor. Bu firma Django sitenizi barındırmak için bir çok şeyi hazır olarak kurmuş ve sizden sadece sitenizin dosyalarınızı yüklemenizi ve birkaç basit ayarlamayı yapmanızı bekliyor. Size bahsedeceğim en basit yöntem budur, ayrıca tamamen ücretsiz olan bir paketi de var, geliştirme süresince kullanılabilir. Django sitelerini Heroku sunucularında nasıl barındırabileceğiniz şu sayfada adım adım anlatılmış, bir göz atın.

Bahsedeceğim diğer yöntemler biraz daha karmaşık ama size daha fazla kontrol sunar. Bu yöntem bir sanal sunucu (VPS, virtual private server) kiralayıp bir işletim sistemi yükledikten sonra kendi web sunucunuzu kurmanızı ve gerekli ayarlamaları yapmanızı içerir. Çok karmaşık görünse de aslında öyle değildir, bir çok elemanın kurulumunu sadece bir kez yaparsınız ve bunu öğrenirken sistem yöneticiliğine ilk adımınızı atmış olursunuz. Django web çatısı Python tabanlı olduğu için Django tabanlı sitenizi barındırmak için önce bir web sunucusu ve daha sonra HTTP isteklerini ve cevaplarını Python diline çeviren bir ara yazılım kurmanız gerekir. Web sunucusu için en yaygın iki seçenek Apache ve Nginx sunucularıdır. Bunların Python iletişimleri için de sırasıyla mod_wsgi (Apache için) veya Gunicorn (Nginx için) kullanabilirsiniz.

Bu yöntemi kullanmak için ihtiyacınız olan şey bir VPS ve sonrasında biraz bilgi. VPS kiralayan bir çok şirket var, en bilinenlerinden birisi AWS'dir. AWS içinde çok sayıda hizmet sunuluyor, bir çoğu farklı amaçlar için kullanılacak olan farklı VPS türleri sunuyor. Sitenizi barındırmak için bunların tek birini veya birden fazlasının bir kombinasyonunu kullanmanız gerekebilir; mesela işlem + statik depo + veritabanı için EC2+S3+RDS gibi bir kombinasyona ihtiyacınız olabilir. Bu servislerin her birini ayrı ayrı konfigüre etmeniz gerekiyor, ilk başta bunları öğrenmek biraz zahmetli gelebilir. Sizin için bütün bu konfigürasyonu otomatik olarak yapan bir AWS servisi geliştirilmiş: Elastic Beanstalk. Heroku'ya rakip olarak geliştirilen bu servis ile Django sitesi barındırmanın adımları şu sayfada tarif ediliyor. Ayrıca AWS içinde işlem ve depolamayı birlikte sunan bir de Lightsail VPS hizmeti var, bununla Django site barındırma adımları (Apache+mod_wsgi ile) da şu sayfada anlatılıyor. Veritabanı konusunda AWS tarafından sunulan yönetilen veritabanı hizmetlerini (RDS gibi) kullanabilirsiniz (ücretli hizmetler), alternatif olarak sunucunuda istediğiniz veritabanı motorunu da kurabilirsiniz (bu ücretsiz ama bakım ve yedekleme gibi işlemler ellerinizden öper). Amazon servislerinde veya başka bir VPS sağlayıcı için bir Ubuntu işletim sisteminde Nginx+Gunicorn ile Django sitesi barındırmak için şu sayfada anlatılan adımlar genel yöntemi açıklıyor.

Bu yazımda size Django tabanlı web sitenizi barındırmak için en yaygın seçenekleri anlattım, işe koyulduğunuzda daha fazla detayla karşılaşacaksınız ve sitenizin özelliklerine ve gereksinimlerine göre bir çok teknik ayarlama yapmak zorunda kalacaksınız. Umarım bu yazı size temel anlamda bir kılavuz olur.

Önceki Blog Yazısı:
Matris İzi ve İntegrasyon
Sonraki Blog Yazısı:
Bedava Lisanslı Mathematica