Python 有不同的 Web 框架,包括 Django、Flask、Falcon、CubicWeb 等。Django 和 Flask 比其他的更受欢迎。 Django 带有许多内置模块,您可以快速开发 Web 应用程序。它有自己的开发服务器,用于开发目的,当涉及到生产时,需要更强大和安全的服务器。接下来,您将看到如何将您的 Django 应用程序与 Nginx(一个强大且安全的服务器)集成。在转到配置设置之前,让我们先看看关键组件。

网络服务器

有不同的 Web 服务器可用,例如 Apache、NGINX、Microsoft Internet Information Services (IIS)、Google Web Server (GWS) 等。NGINX 是开源的、高性能的,并提供可扩展的架构。来自 NGINX 的官方文档

NGINX 具有模块化的、事件驱动的、异步的、单线程架构,可以在通用服务器硬件和多处理器系统上很好地扩展。 NGINX 使用 Linux 等现代操作系统的所有底层功能来优化内存、CPU 和网络的使用,并从物理或虚拟服务器中提取最大性能。最终结果是,与 Apache 相比,NGINX 通常可以提供至少 10 倍以上(通常是 100–1000 倍以上)每台服务器的请求*——这意味着每台服务器的连接用户更多,带宽利用率更高,CPU 更少和 RAM 消耗,以及更环保的环境!

Web 服务器网关接口 (WSGI)

Web 服务器网关接口定义了 Web 服务器和 Python Web 应用程序之间的通信约定。 PEP 3333 定义了 WSGI 的标准。 WSGI 产生多个处理器来服务请求。它具有内置的日志记录系统,既快速又安全。 Gunicorn、uWSGI、mod_wsgi 和 CherryPy 是一些用于 Django 部署的流行 WSGI。

由于它的稳定性,我们将使用 Gunicorn 进行此配置,并且通常用于 Web 应用程序部署。 Gunicorn 通过调用 Django 通过 wsgi.py 文件公开的可调用对象来运行 Django 应用程序。

主管

主管是一个客户端/服务器系统,它允许用户在类 UNIX 操作系统上管理进程。它有不同的组件,如 supervisord、supervisorctl、web 服务器和 XML-RPC 接口。

Supervisord 是主管的服务器部分,负责在子程序自己的调用时启动子程序,响应来自客户端的命令,重新启动崩溃或退出的子进程。

接下来,在系统上安装 Python、NGINX、Gunicorn 和 Supervisor 所需的包。

在安装上述软件包之前,让我们先安装 Python 的依赖项。

ubuntu:~$ sudo apt-get 更新

ubuntu:~$ sudo apt-get -y install build-essential libpq-dev python-dev

将通过执行以下命令安装所需的包

ubuntu:~$ sudo apt-get -y install nginx supervisor python3 python3-virtualenv

现在,制作虚拟环境并激活它。

ubuntu:~$ virtualenv venv -p python3

ubuntu:~$ source venv/bin/activate

激活虚拟环境后,在其中安装 Gunicorn。

ubuntu:~$ pip install gunicorn

在其中安装 Django 包并创建一个 Django 应用程序。要深入了解创建 Django 应用程序,您可以访问官方网站。

Django应用创建成功后,进入应用目录,运行开发服务器,确保应用创建成功。

ubuntu:~$ python3 -m pip install Django

ubuntu:~$ django-admin startproject test_django_app

ubuntu:~$ mkdir 日志

ubuntu:~$ cd test_django_appubuntu:~/test_django_app$ python manage.py runserver 0:8000

独角兽配置

使用 Django 应用程序配置 Gunicorn。进入虚拟环境 /bin 目录并创建 Gunicorn 配置文件。

免费:~$ cd venv/bin/

ubuntu:~/venv/bin$ touch gunicorn_configuration

以下文件包含配置所需的所有命令。每个命令都有注释,您将很容易理解它们的含义。您需要对此文件进行一些更改才能运行 Django 应用程序,因为您的应用程序名称和目录路径会有所不同。所以,打开 gunicorn_configuration 文件

ubuntu:~/venv/bin$ nano gunicorn_configuration

并将以下命令复制到其中。

独角兽配置

使用指令使 gunicorn_configuration 文件成为可执行文件。

ubuntu:~/venv/bin$ chmod u+x gunicorn_configuration

管理员配置

首先,启用监督者并通过执行下一条指令来启动它。

ubuntu:~$ sudo systemctl enable supervisor

ubuntu:~$ sudo systemctl start supervisor

要配置主管,请在 /supervisor/conf.d/ 目录中创建一个配置文件。

ubuntu:~$ sudo touch /etc/supervisor/conf.d/test_django_app.conf

打开主管配置文件并在其中写入以下说明。

ubuntu:~$ sudo nano /etc/supervisor/conf.d/test_django_app.conf

主管配置

现在重新读取 Supervisor 配置文件并使新配置可用。

ubuntu:~$ sudo supervisorctl reread#确保输出看起来像

测试_django_app:可用

更新 Supervisor 并重新启动它。

ubuntu:~$ sudo supervisorctl update#output

test_django_app: 添加进程 groupubuntu:~$ sudo supervisorctl restart test_django_app

并检查其状态,它将处于运行状态。

ubuntu:~$ sudo supervisorctl status

Nginx 配置

对于 Nginx 配置,在 /sites-available 目录中创建一个文件。

ubuntu:~$ cd /etc/nginx/sites-available/

ubuntu:/etc/nginx/sites-available$ sudo touch test_django_app

ubuntu:/etc/nginx/sites-available$ sudo nano test_django_app

根据以下命令配置您的 Nginx,

Nginx 配置

配置 proxy_pass 参数时要小心,它指向 gunicorn 套接字文件,它是在从 Supervisor 执行时由 gunicorn_configuration 创建的。

现在,使用以下指令创建一个符号链接到从可用站点启用的站点

ubuntu:~$ sudo ln -s /etc/nginx/sites-available/test_django_app /etc/nginx/sites-enabled/test_django_app

创建符号后,转到 /sites-enabled 目录并确保已创建符号链接文件。

ubuntu:~$ cd /etc/nginx/sites-enabled/

免费:~$ls

确认 Nginx 配置后,通过以下命令重启。

ubuntu:~$ sudo service nginx restart

伟大的!您可以从您的服务器 IP 地址和 Nginx 配置中定义的端口访问应用程序。如果你使用 server_name 作为 0.0.0.0 那么你也可以通过这个链接从 localhost 访问它http://127.0.0.1:8000/

现在您可以使用 Supervisor 控制您的应用程序。如果您想用新版本更新应用程序的源代码,则需要重新启动 Supervisor 进程。

加入 FAUN:网站💻**|播客🎙️|Twitter🐦0|(https://faun.to/i9Pt9)🐦0**|Facebook ](https://www.facebook.com/faun.dev/)👥*|Instagram📷|Facebook 群组🗣️|Linkedin 群组💬|Slack📱|** zwz * 新闻](https://thechief.io)📰**|更多.**

如果这篇文章对你有帮助,请多点击下方的鼓掌👏按钮,以表达对作者的支持👇

Logo

开发云社区提供前沿行业资讯和优质的学习知识,同时提供优质稳定、价格优惠的云主机、数据库、网络、云储存等云服务产品

更多推荐