辅助管理命令,用于在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.py和service.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
项目详情
django-windows-tools-0.2.1.tar.gz 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 2d77f4babefbb5f381ce9b18ecb53134e9e2bf73c76b4b5f5bba7e7ece429283 |
|
MD5 | 64b3490a9b4b4abc55deadb16d0092fc |
|
BLAKE2b-256 | 4d1cf1ba120dbdcff91bb49f28f18cf64f1c3db9a25d5bb2363d4523b10f4733 |