Масштабирование и обеспечение безопасности приложения Django с помощью Docker, Nginx

Масштабирование и обеспечение безопасности приложения Django с помощью Docker, Nginx

В облачных средах существует множество способов масштабирования и защиты приложения Django. Используя горизонтальное масштабирование и запустив несколько экземпляров приложения, вы можете создать более отказоустойчивую систему с высоким уровнем…

Введение

В облачных средах существует множество способов масштабирования и защиты приложения  Django. Используя горизонтальное масштабирование и запустив несколько экземпляров приложения, вы можете создать более отказоустойчивую систему с высоким уровнем доступности, а также увеличить ее пропускную способность для одновременной обработки запросов. Одним из способов горизонтального масштабирования приложения Django является предоставление дополнительных серверов приложения, запускающих ваше приложение Django и его HTTP-сервер WSGI (например,  Gunicorn или  uWSGI). Чтобы направить и распределить входящие запросы через эту группу серверов приложения, вы можете использовать  балансировщик нагрузки и  обратный прокси-сервер, например Nginx. Nginx также может кэшировать статический контент и прерывать протокол безопасности Transport Layer Security (TLS), который используется для активации HTTPS и безопасных подключений к вашему приложению.

Запуск приложения Django и прокси-сервера Nginx в  контейнерах Docker гарантирует одинаковое поведение этих компонентов, независимо от среды развертывания. Кроме того, контейнеры предоставляют много возможностей, облегчающих упаковку и настройку вашего приложения.

В этом обучающем руководстве вы выполните горизонтальное масштабирование контейнеризированного приложения Django и Gunicorn  «Опросы», активировав два сервера приложения, каждый из которых будет выполнять экземпляр контейнера приложения Django и Gunicorn.

Также вы активируете HTTPS, предоставив и настроив третий прокси-сервер, который будет выполнять запуск контейнера обратного прокси-сервера Nginx и контейнера клиента Certbot. Certbot будет предоставлять сертификаты TLS для Nginx от имени органа сертификации  Let’s Encrypt. Это позволит вашему сайту получить высокий рейтинг безопасности от SSL Labs. Этот прокси-сервер будет получать все внешние запросы приложения и находиться перед двумя исходящими серверами приложения Django. И наконец, вы усилите данную распределенную систему, оставив внешний доступ только к прокси-серверу.

Предварительные требования

Для данного обучающего модуля вам потребуется следующее:

  • Три сервера Ubuntu 18.04:
  • Два сервера будут выполнять функции серверов приложения, используемых для запуска приложения Django и Gunicorn.

let's encrypt docker nginx django python frameworks

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

Django Rest Framework and SPA -Session Authentication (With Docker and Nginx)

Tutorial also covers authentication and deployment as a Docker container. ... Building a Basic API with Django REST Framework in Docker (this post) ... an API that is consumed by our Angular Single-Page Application (SPA).

Build an API System With Python Django Rest Framework — Part 1: Dockerize Python Django

My career are all about C# / php / Java. So this time I hope to try something new (to me). So I plan to use python Django + Django Rest Framework.

How to Scale and Secure a Django Application with Docker, Nginx and Let's Encrypt

In cloud-based environments, there are multiple ways to scale and secure a Django application. In this tutorial, you’ll horizontally scale a containerized Django and Gunicorn Polls application by provisioning two application servers that will each run a copy of a Django and Gunicorn app container.

Skalieren und Sichern einer Django-Anwendung mit Docker, Nginx und Let’s Encrypt

In cloudbasierten Umgebungen gibt es mehrere Möglichkeiten, eine Django-Anwendung zu skalieren und zu sichern. Durch horizontale Skalierung und die Ausführung mehrerer Kopien Ihrer Anwendung können Sie ein fehlertolerantes und hochverfügbares

Dockerize Django with Nginx and PostgreSQL

"Docker is Inception for Linux", is how I like to put it when it comes to explaining docker. Cause docker is exactly like this, a Linux inside a Linux sharing the host kernel. For any compassionate Linux user, can learn docker in a matter of days. In this article, I will discuss dockerizing a complete Django app in a production environment (Nginx, PostgreSQL, and Gunicorn) with docker-compose. So, let’s begin