- Сървър със SSH достъп
- Nginx уеб сървър, работещ на сървъра (обхваната инсталация)
- Python
- Вие сте потребител на sudo.
Настройка на сървъра
Нека сега започнем да задаваме сървърната среда, която ще използваме за хостване на нашия сървър. Този урок използва Ubuntu Server. Започнете с актуализиране на хранилищата и инсталиране на Python3 и Pip.
sudo apt-get updatesudo apt-get upgrade -y
sudo apt-get инсталирате python3 python3-pip -y
След това трябва да създадем директория за съхраняване на проекта.
sudo mkdir / var / www / applicationcd / var / www / application
Промяна на собствеността и разрешенията в директорията:
sudo chown -R www-data: www-data / var / www / application /След това инсталирайте пакетите с помощта на apt (колба и Gunicorn)
sudo apt-get инсталирайте python3-flask python3-gunicornНека сега да пристъпим към инициализиране на приложение за колба. Започнете, като създадете основната.py-държи приложението-и wsgi.py, което ще стартира приложението.
sudo touch main.py wsgi.pyРедактирайте основното.py и настройте приложението си Flask и всички маршрути. Тъй като този урок не е ръководство за Flask, ще зададем основен маршрут и послание за здравей.
от колба за внос Колбаап = колба (__ име__)
@app.маршрут ("/")
def home ():
връщане "
Nginx & Gunicorn
"Редактирайте wsgi.py файл и добавете кода за импортиране на приложение и стартирайте като:
от основното приложение за импортиранеако __name__ == "__main__":
ап.стартиране (отстраняване на грешки = Вярно)
И накрая, проверете дали тя работи и работи, като извикате колба като:
Тече $ колба* Околна среда: производство
ПРЕДУПРЕЖДЕНИЕ: Това е сървър за разработка. Не го използвайте в производствено внедряване.
Вместо това използвайте производствен WSGI сървър.
* Режим за отстраняване на грешки: изключен
* Работи на http: // 127.0.0.1: 5000 / (Натиснете CTRL + C, за да излезете)
Опитайте да осъществите достъп до приложението на http: // localhost: 5000.
Настройване на Gunicorn
След като приложението ни се изпълни успешно, можем да използваме Gunicorn, за да тестваме приложението с помощта на командите:
$ sudo gunicorn - работници 5 wsgi: ап[2021-03-19 09:19:34 +0000] [14047] [INFO] Стартиране на gunicorn 20.0.4
[2021-03-19 09:19:34 +0000] [14047] [INFO] Слушане на: http: // 127.0.0.1: 8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [INFO] Използване на работник: синхр
[2021-03-19 09:19:34 +0000] [14049] [INFO] Работник по зареждане с pid: 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Работник за зареждане с pid: 14050
[2021-03-19 09:19:34 +0000] [14051] [INFO] Работник за зареждане с pid: 14051
[2021-03-19 09:19:34 +0000] [14052] [INFO] Работник за зареждане с pid: 14052
[2021-03-19 09:19:35 +0000] [14053] [INFO] Работник за зареждане с pid: 14053
Горните команди стартират приложението на колбата, използвайки Gunicorn, използвайки посочения брой работници. След това извикваме файла wsgi: app, който е файлът и екземпляр на приложението, което трябва да се изпълни.
След като приложението се стартира с помощта на Gunicorn, натиснете CTRL + C, за да спрете сървъра и да настроите Nginx.
Използвайте командите по-долу, за да инсталирате и стартирате Nginx.
sudo apt-get инсталиране nginx -ysudo systemctl стартира nginx
sudo systemctl разреши nginx
Следващата стъпка е да редактирате конфигурацията на Nginx в директорията с активирани сайтове и да добавите сървърния блок. Обмислете следната конфигурация. Променете приложението на името на вашия проект.
sudo nano / etc / nginx / sites-available / application.конфсървър
слушайте 80;
приложение на сървърно име;
access_log / var / log / nginx / application.достъп.дневник;
error_log / var / log / nginx / application.грешка.дневник;
местоположение /
включва proxy_params;
proxy_pass http: // unix: / var / www / application / application.чорап;
Продължете да създавате връзка към директорията с активиран сайт, за да активирате уебсайта.
sudo ln -s / etc / nginx / sites-available / application.conf / etc / nginx / sites-enabled /Сега рестартирайте услугата Nginx като:
sudo systemctl рестартирайте nginxСлед това трябва да създадем файл на systemd единица, който да обслужва приложението.
sudo nano / etc / systemd / system / application.обслужване[Мерна единица]
Описание = приложение.услуга - Flask приложение, изпълнявано с Gunicorn.
След = мрежа.мишена
[Обслужване]
Потребител = www-данни
Група = www-данни
WorkingDirectory = / var / www / application /
ExecStart = / usr / bin / gunicorn --workers 3 --bind unix: / var / www / application.чорап wsgi: ап
[Инсталирай]
WantedBy = многопотребителски.мишена
И накрая, запазете единичния файл, след това активирайте и презаредете демона.
sudo systemctl приложение за рестартиране.обслужванеsudo systemctl daemon-reload
Сега можете да получите достъп до приложението, използвайки IP адреса или адреса, посочен в конфигурационния файл nginx. Може да се наложи да го добавите към файла на хоста.
къдрене http: // приложениеHTTP / 1.1 200 ОК
Сървър: Werkzeug / 0.16.1 Python / 3.8.5)
Дата: петък, 19 март 2021 г. 10:00:39 GMT
Тип съдържание: text / html
Дължина на съдържанието: 25
Последна промяна: петък, 19 март 2021 09:22:47 GMT
Заключение
Този урок разгледа как да настроите приложение на Python Flask и да го обслужвате през Nginx с помощта на Gunicorn. Помислете за индивидуалната документация, за да научите повече за услугите, обсъдени в този урок.