Flask Uygulamanızı Narweb VDS’e Deploy Etmenin Temelleri

  • Home
  • Linux
  • Flask Uygulamanızı Narweb VDS’e Deploy Etmenin Temelleri
Python Flask

Flask Uygulamanızı Narweb VDS’e Deploy Etmenin Temelleri

Python Flask

Flask ve Narweb VDS ile ilk deploy adımlarını öğrenin: Sunucu hazırlığı, uygulama aktarımı, sanal ortam kurulumu, Gunicorn ve Nginx ile ilk yayına alma.

Giriş: Neden Flask ve Narweb VDS?

Flask, Python tabanlı hafif bir web framework’üdür ve esnekliği sayesinde küçükten büyüğe projelerde tercih edilir. Narweb VDS ise Türkiye merkezli, yüksek performanslı ve uygun maliyetli bir sanal sunucu hizmeti sunar. Bu yazı dizisinde, Flask uygulamanızı Narweb VDS üzerinde nasıl profesyonelce yayınlayacağınızı adım adım öğreneceksiniz.

Bu bölümde, temel kurulum ve ilk deploy sürecini ele alacağız. Sunucuya bağlanmaktan başlayarak Flask uygulamanızı yayına hazır hale getireceksiniz.

Gerekli Ön Koşullar ve Hazırlıklar

Başlamadan önce şunları hazırlayın:

  • Narweb VDS hesabınız ve aktif bir sanal sunucu (Ubuntu 20.04 veya 22.04 önerilir).
  • Yerel makinenizde çalışan bir Flask uygulaması.
  • Temel Linux komut bilgisi.
  • SSH istemcisi (PuTTY, OpenSSH veya Terminal).
  • (Opsiyonel) Bir alan adı (ör. example.com).

Yerel Flask uygulamanızın bir requirements.txt dosyası olduğundan emin olun. Bu dosyayı oluşturmak için:

pip freeze > requirements.txt

Sunucuya SSH ile Bağlanma

Narweb panelinden VDS’inize ait IP adresi, kullanıcı adı (genellikle root) ve şifreyi alın. Yerel terminalinizde aşağıdaki komutla bağlanın:

ssh root@<sunucu-ip-adresi>

İlk bağlantıda parolayı girin. Güvenlik için sonraki bölümlerde SSH anahtar tabanlı erişimi yapılandıracağız.

Python, pip, venv ve Nginx Kurulumu

Ubuntu sunucunuzda gerekli araçları kurun:

# Sistem güncelleme
apt update && apt upgrade -y

# Python ve pip kurulumu
apt install -y python3 python3-pip python3-venv

# Nginx kurulumu
apt install -y nginx

# Diğer bağımlılıklar
apt install -y git

Nginx servisini başlatın ve aktifleştirin:

systemctl start nginx
systemctl enable nginx

Uygulamanın Sunucuya Aktarılması (SCP/FTP)

Flask uygulamanızı sunucuya aktarmak için SCP kullanabilirsiniz. Yerel makinenizde terminal açın ve proje klasörünüzü sunucuya yükleyin:

scp -r /yerel/flask-uygulama root@<sunucu-ip-adresi>:/root/

Sunucuda, uygulamanızı uygun bir dizine taşıyın:

mv /root/flask-uygulama /var/www/flask-uygulama
cd /var/www/flask-uygulama

Sanal Ortam Kurulumu ve Bağımlılıkların Yüklenmesi

Uygulama dizininde bir sanal ortam oluşturun:

python3 -m venv venv
source venv/bin/activate

Bağımlılıkları yükleyin:

pip install -r requirements.txt
pip install gunicorn

Gunicorn ile Flask Uygulamasının Çalıştırılması

Gunicorn, Flask uygulamanızı üretim ortamında çalıştırmak için kullanılan bir WSGI sunucusudur. Uygulamanızı test etmek için:

gunicorn --bind 0.0.0.0:8000 wsgi:app

Burada wsgi:app, Flask uygulamanızın giriş noktasıdır. wsgi.py dosyasında tanımlı olmalıdır. Örnek bir wsgi.py:

from myapp import app

if __name__ == "__main__":
    app.run()

Test için tarayıcıda http://<sunucu-ip-adresi>:8000 adresini kontrol edin. Çalışıyorsa, Ctrl+C ile durdurun.

Nginx ile Ters Proxy Yapılandırması

Nginx, Gunicorn’a gelen istekleri yönlendirmek için ters proxy olarak yapılandırılır. Yeni bir Nginx yapılandırma dosyası oluşturun:

nano /etc/nginx/sites-available/flask-uygulama

Aşağıdaki içeriği ekleyin:

server {
    listen 80;
    server_name <sunucu-ip-adresi> <alan-adi>;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Siteyi etkinleştirin:

ln -s /etc/nginx/sites-available/flask-uygulama /etc/nginx/sites-enabled/

Nginx yapılandırmasını test edin ve yeniden başlatın:

nginx -t
systemctl restart nginx

İlk Yayına Alma ve Test

Gunicorn’u arka planda çalıştırın:

gunicorn --bind 0.0.0.0:8000 wsgi:app &

Tarayıcıda http://<sunucu-ip-adresi> adresine giderek uygulamanızı test edin. Her şey yolundaysa, uygulamanız yayında!

Kontrol Listesi

  • [ ] Sunucuya SSH ile bağlandınız mı?
  • [ ] Python, pip, venv ve Nginx kurulu mu?
  • [ ] Uygulama sunucuya aktarıldı mı?
  • [ ] Sanal ortam oluşturuldu ve bağımlılıklar yüklendi mi?
  • [ ] Gunicorn ile uygulama çalışıyor mu?
  • [ ] Nginx ters proxy yapılandırması tamamlandı mı?
  • [ ] Uygulama tarayıcıda görüntülendi mi?

Sıkça Sorulan Sorular

S: Gunicorn yerine başka bir WSGI sunucusu kullanabilir miyim?
C: Evet, uWSGI veya Waitress gibi alternatifler kullanılabilir, ancak Gunicorn basitliği ve performansı ile popülerdir.

S: Nginx yerine Apache kullanabilir miyim?
C: Evet, ancak Nginx hafifliği ve ters proxy performansı ile tercih edilir.

Bir Sonraki Bölümde Neler Var?

Bir sonraki bölümde, uygulamanızı daha güvenli ve performanslı hale getirmek için SSL kurulumu, güvenlik duvarı ayarları, loglama ve optimizasyon tekniklerini ele alacağız.

Bir yanıt yazın

Hemen bugün siz de mutlu Narweb müşterileri arasına katılın!

Narweb Cloud altyapısına geçerek siz de hem uygun fiyat hem de kaliteli hizmet almaya hemen başlayabilirsiniz.

Copyright 2000 - 2025 © NARWEB.net. Tüm hakları saklıdır. Narweb® Markası Narnet Bilgisayar Dahili Tic. LTD. ŞTİ.'nin tescilli bir markasıdır.