Benim genelde nasil yaptigimi anlatayim. Once internetten nginx kurulumunu bulun. Nginx’in kuruldugundan ve calistigindan emin olun.
Daha sonra Django uygulamasini bir systemd unit’i haline getirin ki arkaplanda calisabilsin.
Django sunucusunu calistirip nginx’te reverse proxy yapin: (/etc/nginx/sites-available/default
)
location / {
include proxy_params;
proxy_pass http://localhost:5000; # Sunucunun calistigi port, django'da default olarak 5000.
}
location /static {
autoindex on;
alias /root/backend/staticfiles/; # collectstatic ile toplanan static dosyalarin olmasi gereken dizin
}
location /media {
autoindex on;
alias /root/backend/media/; # medya dosyalarinin oldugu dizin
}
(Eger static veya medya dosyalari yoksa o kisimlari eklemenize gerek yok.)
Django’da debug modu kapatmaniz, static/media dosyalariyla ilgili ayarlar yapmaniz ve yayinlanacak adresi ALLOWED_HOSTS
'a eklemeniz lazim, suraya goz atin: Deployment checklist | Django documentation | Django
Config’te bir degisiklik oldugunda nginx’e restart atmaniz lazim:
sudo systemctl restart nginx
Ha bir de, firewall’dan 80 portuna izin vermeniz lazim, ufw
icin:
sudo ufw allow 80
Bir yeri atlamadiysam en kolay sekliyle boyle olmasi gerek. Gunicorn ile yapilmasi daha cok tavsiye ediliyor ama ben en basit halini gosterdim. Onun icin suraya bakabilirisniz: