跳转到主要内容

辅助管理命令,用于在Windows服务器上托管Django应用程序。

项目描述

django-windows-tools是一个Django应用程序,提供管理命令,以在Windows环境中托管Django项目。

它提供管理命令,允许您

  • 将Django应用程序作为FastCGI应用程序在IIS后面托管(需要IIS 7及以上版本)。

  • 作为Windows服务运行Celery和Celery Beat后台进程。

它需要Django >= 1.4和pywin32。

兼容性说明

  • django-windows-tools 0.1.3是与Django <= 1.7兼容的最后一个版本

  • 已知win_fcgi部分与Django版本1.11和Python 3.6(需要django-windows-tools 0.2)兼容,并且与IIS 10版本兼容

  • 使用较新版本的Django和Python 3安装服务尚未测试,可能无法正常工作(另请参阅开放问题)

  • 较新版本的Celery不能按描述安装为服务(请参阅#19)

以下是对项目的快速概述。如需更多信息,请阅读项目文档

安装和配置

您可以使用以下命令安装应用程序:

pip install django-windows-tools

或者,您可以选择安装最新开发版本以修复更多错误。

pip install git+https://github.com/antoinemartin/django-windows-tools@master

启用django_windows_tools应用程序以使用管理命令。将应用程序添加到项目中的settings.py配置文件列表中。

INSTALLED_APPS += (
    'django_windows_tools',
)

FastCGI配置

先决条件

在主机机器上,您需要安装并运行以下内容:

  • IIS 7或更高版本。

  • 已安装CGI模块。

为了使用绑定www.mydjangoapp.com在IIS下托管您的Django项目,您需要首先使用以下命令收集静态文件:

D:\sites\mydjangoapp> python manage.py collectstatic

然后以管理员权限运行以下命令:

D:\sites\mydjangoapp> python manage.py winfcgi_install --binding=http://www.mydjangoapp.com:80

该命令将执行以下操作:

  • 创建FastCGI应用程序以服务您的Django应用程序的动态内容。

  • 创建一个名为mydjangoapp的站点,其绑定www.mydjangoapp.com指向项目根目录。

  • 在项目根目录中安装一个web.config文件,以处理请求的重定向到Django应用程序。

  • 如果需要,创建一个虚拟目录以通过IIS服务静态文件。

要删除使用前述命令创建的站点,键入:

D:\sites\mydjangoapp> python manage.py winfcgi_install --delete

winfcgi_install命令提供了许多选项。要列出它们,键入:

D:\sites\mydjangoapp> python help winfcgi_install

有关如何配置的更多信息,请参阅这篇博客文章

以Windows服务运行Celery或其他后台命令

安装应用程序后,在项目根目录中键入以下命令:

D:\sites\mydjangoapp> python manage.py winservice_install

它将在项目根目录中创建两个文件,分别是service.pyservice.ini。第一个文件将帮助您安装、运行和删除Windows服务。后者包含Windows服务将运行的清单。

配置

service.ini是一个配置文件,如下所示:

[services]
# Services to be run on all machines
run=celeryd
clean=d:\logs\celery.log

[BEATSERVER]
# There should be only one machine with the celerybeat service
run=celeryd celerybeat
clean=d:\logs\celerybeat.pid;d:\logs\beat.log;d:\logs\celery.log

[celeryd]
command=celeryd
parameters=-f d:\logs\celery.log -l info

[celerybeat]
command=celerybeat
parameters=-f d:\logs\beat.log -l info --pidfile=d:\logs\celerybeat.pid

[runserver]
# Runs the debug server and listen on port 8000
# This one is just an example to show that any manage command can be used
command=runserver
parameters=--noreload --insecure 0.0.0.0:8000

[log]
filename=d:\logs\service.log
level=INFO

services部分包含

  • run指令中运行的背景命令列表。

  • clean指令中删除的文件列表。

您可以在同一个配置文件中包含多个services部分,用于不同的主机服务器。Windows服务将尝试找到与当前服务器名称匹配的部分,如果没有找到,将回退到services部分。这允许您在多台机器上部署相同的配置文件,但只有一台机器运行celery beat后台进程。在前面的配置中,只有名为BEATSERVER的服务器将运行celerybeat命令。其他服务器将只运行celeryd命令。

对于在run指令中指定的每个命令名称,必须有一个匹配的配置部分。该部分包含两个指令:

  • command指定要运行的manage.py命令。

  • parameters指定命令的参数。

在之前的配置文件中,celeryd 配置将启动一个进程,该进程将运行与

D:\sites\mydjangoapp> python manage.py celeryd -f d:\logs\celery.log -l info

最后,log 部分定义了 Windows 服务器的日志级别和日志目标文件。

安装和启动

使用以下命令安装 Windows 服务(以管理员权限运行)

D:\sites\mydjangoapp> python service.py --startup=auto install

使用以下命令启动和停止

D:\sites\mydjangoapp> python service.py start
D:\sites\mydjangoapp> python service.py stop

可以使用以下命令删除

D:\sites\mydjangoapp> python service.py remove

Windows 服务监控器切换到 service.ini 配置文件。如果它被修改,服务将执行以下操作

  • 停止后台进程。

  • 重新读取配置文件。

  • 启动后台进程。

定制

winservice_install 管理命令提供了几个选项,允许定制 Web 服务或脚本名称。要获取有关它们的信息,请输入

D:\sites\mydjangoapp> python manage.py help winservice_install

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

支持者