- SSH erişimi olan bir sunucu
- Sunucuda çalışan Nginx web sunucusu (kurulum kapsamında)
- piton
- sen bir sudo kullanıcısısın.
Sunucuyu Kurmak
Şimdi sunucumuzu barındırmak için kullanacağımız sunucu ortamını ayarlamaya başlayalım. Bu öğretici Ubuntu Sunucusunu kullanır. Depoları güncelleyerek ve Python3 ve Pip'i yükleyerek başlayın.
sudo apt-get güncellemesisudo apt-get yükseltme -y
sudo apt-get kurulum python3 python3-pip -y
Ardından, projeyi saklamak için bir dizin oluşturmamız gerekiyor.
sudo mkdir /var/www/uygulamacd /var/www/uygulama
Dizin sahipliğini ve izinlerini değiştirin:
sudo chown -R www-veri:www-data /var/www/application/Ardından, paketleri apt (şişe ve Gunicorn) kullanarak kurun
sudo apt-get install python3-flask python3-gunicornŞimdi bir şişe uygulamasını başlatmaya devam edelim. Ana öğeyi oluşturarak başlayın.py-uygulamayı ve wsgi'yi tutar.py, uygulamanın çalışmasını sağlayacak.
sudo dokunmatik ana.py wsgi.pAna öğeyi düzenleyin.py dosyası oluşturun ve Flask uygulamanızı ve tüm rotaları ayarlayın. Bu eğitim bir Flask rehberi olmadığından, temel bir rota ve merhaba dünya mesajı oluşturacağız.
şişeden ithalat şişesiuygulama = Şişe(__name__)
@app.rota("/")
def ana sayfa():
dönüş "
Nginx ve Gunicorn
"wsgi'yi düzenle.py dosyası oluşturun ve uygulamayı içe aktarmak için kodu ekleyin ve şu şekilde çalıştırın:
ana içe aktarma uygulamasındaneğer __name__ == "__main__":
uygulama.çalıştır(hata ayıklama=Doğru)
Son olarak, şişeyi şu şekilde çağırarak çalışır durumda olup olmadığını test edin:
$ şişe koşusu* Çevre: üretim
UYARI: Bu bir geliştirme sunucusudur. Bir üretim dağıtımında kullanmayın.
Bunun yerine bir üretim WSGI sunucusu kullanın.
* Hata ayıklama modu: kapalı
* http://127'de çalışıyor.0.0.1:5000/ (Çıkmak için CTRL+C tuşlarına basın)
http://localhost:5000 adresinden uygulamaya erişmeyi deneyin.
Gunicorn'u Kurma
Uygulamamız başarıyla çalıştığında, aşağıdaki komutları kullanarak uygulamayı test etmek için Gunicorn'u kullanabiliriz:
$ sudo gunicorn --workers 5 wsgi:app[2021-03-19 09:19:34 +0000] [14047] [BİLGİ] Gunicorn 20'ye başlama.0.4
[2021-03-19 09:19:34 +0000] [14047] [BİLGİ] Dinleme: http://127.0.0.1:8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [BİLGİ] Çalışanı kullanma: senkronizasyon
[2021-03-19 09:19:34 +0000] [14049] [BİLGİ] pid ile önyükleme işçisi: 14049
[2021-03-19 09:19:34 +0000] [14050] [BİLGİ] pid ile önyükleme işçisi: 14050
[2021-03-19 09:19:34 +0000] [14051] [BİLGİ] pid ile önyükleme işçisi: 14051
[2021-03-19 09:19:34 +0000] [14052] [BİLGİ] pid ile önyükleme işçisi: 14052
[2021-03-19 09:19:35 +0000] [14053] [BİLGİ] pid ile önyükleme işçisi: 14053
Yukarıdaki komutlar, belirtilen sayıda işçi kullanarak Gunicorn kullanarak şişe uygulamasını çalıştırır. Ardından, çalıştırılacak uygulamanın dosyası ve örneği olan wsgi:app dosyasını çağırırız.
Gunicorn kullanarak uygulamayı çalıştırdıktan sonra, sunucuyu durdurmak ve Nginx'i kurmak için CTRL + C tuşlarına basın.
Nginx'i kurmak ve çalıştırmak için aşağıdaki komutları kullanın.
sudo apt-get install nginx -ysudo systemctl nginx'i başlat
sudo systemctl nginx'i etkinleştir
Sonraki adım, sitelerin etkin olduğu dizindeki Nginx yapılandırmasını düzenlemek ve sunucu bloğunu eklemektir. Aşağıdaki yapılandırmayı göz önünde bulundurun. Uygulamayı projenizin adıyla değiştirin.
sudo nano /etc/nginx/siteler kullanılabilir/uygulama.konfsunucu
80 dinle;
sunucu_adı uygulaması;
access_log /var/log/nginx/uygulama.Giriş.günlük;
error_log /var/log/nginx/uygulama.hata.günlük;
yer /
proxy_params dahil;
proxy_pass http://unix:/var/www/application/application.çorap;
Web sitesini etkinleştirmek için sitenin etkin olduğu dizine bir bağlantı oluşturmaya devam edin.
sudo ln -s /etc/nginx/siteler kullanılabilir/uygulama.conf /etc/nginx/siteler etkin/Şimdi Nginx hizmetini şu şekilde yeniden başlatın:
sudo systemctl nginx'i yeniden başlatArdından, uygulamaya hizmet etmek için bir systemd birim dosyası oluşturmamız gerekiyor.
sudo nano /etc/systemd/system/application.hizmet[Birim]
Açıklama=uygulama.hizmet - Gunicorn ile çalışan bir Flask uygulaması.
sonra=ağ.hedef
[Hizmet]
Kullanıcı=www-veri
Grup=www-veri
WorkingDirectory=/var/www/application/
ExecStart=/usr/bin/gunicorn --workers 3 --bind unix:/var/www/application.çorap wsgi:uygulama
[Yüklemek]
WantedBy=çok kullanıcılı.hedef
Son olarak, birim dosyasını kaydedin, ardından arka plan programını etkinleştirin ve yeniden yükleyin.
sudo systemctl yeniden başlatma uygulaması.hizmetsudo systemctl arka plan programı yeniden yükleme
Artık IP adresini veya nginx yapılandırma dosyasında belirtilen adresi kullanarak uygulamaya erişebilirsiniz. Ana bilgisayarın dosyasına eklemeniz gerekebilir.
kıvırma http://uygulamaHTTP/1.1 200 TAMAM
Sunucu: Werkzeug/0.16.1 Piton/3.8.5)
Tarih: Cum, 19 Mart 2021 10:00:39 GMT
İçerik Türü: metin/html
İçerik Uzunluğu: 25
Son Değiştirilme Tarihi: Cum, 19 Mart 2021 09:22:47 GMT
Sonuç
Bu eğitim, bir Python Flask uygulamasının nasıl kurulacağını ve Gunicorn kullanarak Nginx üzerinden nasıl sunulacağını ele aldı. Bu öğreticide tartışılan hizmetler hakkında daha fazla bilgi edinmek için bireysel belgeleri inceleyin.