Django'yu mod_wsgi ve apache ile deploy edebilirsiniz bunun için ortalıkta bir çok tutorial var hatta türklerin django öğrenmek için başvuracağı kaynak olan mustafa başer 'in yazdığı django kitabındada mod_wsgi + apache anlatılmış fakat en mükkemmel sonucu Green Unicorn (Gunicorn) [wsgi] + Nginx verdiği için ki zaten wsgi 'yi dahil etmesek bile Nginx 'in apacheden daha iyi bir web server olduğuda kanıtlanmış .
Önce size worker'ın ne olduğundan bahsedeyim diyelim ki 1 cpu 'ya sahip bir VPS 'e sahipsiniz.
1*2+1 = 3 adet worker kullanma hakkınız var. . 2 cpu 'nuz varsada 2*2+1 den 5 worker eder.
Eğer verdiğim linkten 1 aylık 5 dolara vps alırsanız 1 cpu nuz olacak ve 3 worker ile çalışacaksınız.
Yukarıdaki grafikte uwsgi 10 çalışan'la 2500 request işleyebiliyormuş saniyede.
Diğer grafikte 2100 5 workerla neredeyse yarım worker ama sonuç neredeyse eşit .
Bu güç nereden geliyor derseniz cevap : gunicorn
Sistemimizi upgrate ediyoruz.
$ sudo apt-get update
$ sudo apt-get upgrade
Gerekli şeyleri indirelim.
$ sudo apt-get install vim
$ apt-get install git
Vim : Komut listesinde dosya editlemeyi sağlar 4 reslik bir eğitimi var youtube 'Da
isteyen 15 dakikasını ayırıp dinleyebilir olmazsa olmazlardan : Vim dersleri
2. Git : Git Github'ın kullandığı versiyon Kontrol sistemidir.
değil odtü, boun falan; harvard ya da stanford mezunu bile olsa,
eğer ki adam github'dan bihaberse, yazılımcıyım falan dememelidir.
o derece mühimdir. o derece vazgeçilmezdir kanaat-i acizanemce.
Github ve git hakkında ekşisözlük
virtualenv
sudo apt-get install python-virtualenv
$ cd /opt
$ virtualenv venv
New python executable in venv/bin/python
Installing distribute..............done.
Installing pip.....................done.
$cd venv
$. bin/activate
Yakın zamanda udemy'de ücretsiz venv kullanımını anlatan ders yapıp buraya ekleyeceğim.
şimdilik virtualenv hakkında bilgi için şu yazıyı okuyun : Virtualenv nedir ?
virtualenv'i aktif ettik .
(venv)$ şeklinde olması gerekiyor komut satırının venv aktif olunca !
$ pip install django
$ django-admin.py startproject hello
$ cd hello
$ python manage.py syncdb
Gunicorn
$ pip install gunicorn
sitenizin settings.py 'de
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.admindocs',
'gunicorn'
)
Eklemeyi unutmayın !
$ gunicorn_django --bind siteniz.com:8001
http://siteniz.com:8001
Yaptığınızda sitenizi başarılı bir şekilde görüntülüyor olacaksınız !
Şimdi venvin içindeki
bin klasörü içine girelim..
vi gunicorn_start
diyerek boş bi sayfa oluşturun ve buraya vim 'de bişiler eklemek
için i tuşuna basın artık buraya istediğinizi yazabilirsiniz ..
Şimdi gunicorn_starta buradakileri yapıştırın. gunicorn_start rawı
gunicorn_start'ı executable yapalım şu an bin klasöründeyiz..
$ chmod u+x gunicorn_start
Gunicorn startı başlatalım..
$. gunicorn_start (arada boşluk olmayada bilir onuda deneyin olmazsa)
Şu ekran çıkacak ..
Starting hello_app
2013-06-09 21:14:07 [2792] [INFO] Starting gunicorn 0.17.4
2013-06-09 21:14:07 [2792] [DEBUG] Arbiter booted
2013-06-09 21:14:07 [2792] [INFO] Listening at: unix:/webapps/hello_django/run/gunicorn.sock (2792)
2013-06-09 21:14:07 [2792] [INFO] Using worker: sync
2013-06-09 21:14:07 [2798] [INFO] Booting worker with pid: 2798
2013-06-09 21:14:07 [2799] [INFO] Booting worker with pid: 2799
2013-06-09 21:14:07 [2800] [INFO] Booting worker with pid: 2800
$ sudo apt-get install python-dev
Supervisiord ...
$ sudo apt-get install supervisor
$ cd
/etc/supervisor/conf.d
hello.conf diye bi dosya oluşturalım .
$vi hello.conf
ve bu raw'ı yapıştırın . hello raw
Supervisor ayarları ile ilgili daha fazla bilgi için şuraya bakın bize bu kadarı yeterli.
$ mkdir -p /opt/venv/logs/
$ touch /opt/venv/logs/gunicorn_supervisor.log
Supervisord aktif etme.
$ sudo supervisorctl reread
hello: available
$ sudo supervisorctl update
hello: added process group
Supervisord durumlarını kontrol etme durdurma başlatma vs işlemler
$ sudo supervisorctl status hello
hello RUNNING pid 18020, uptime 0:00:50
$ sudo supervisorctl stop hello
hello: stopped
$ sudo supervisorctl start hello
hello: started
$ sudo supervisorctl restart hello
hello: stopped
hello: started
Nginx
$ sudo apt-get install nginx
$ sudo service nginx start
$ cd /etc/nginx/sites-available
$ vi hello
Hello'yada buradakileri kendinize göre değiştirip atıyorsunuz. nginx raw
sites-enabled klasörüne sembolik link vermeniz gerekiyor .
$ ln -s /etc/nginx/sites-available/hello /etc/nginx/sites-enabled/hello
Nginx'i restart ediyoruz ve sistemimiz hazır.
$ sudo service nginx restart
Yasin Aktimur Twitter
Hiç yorum yok:
Yorum Gönder