【问题标题】:Django application deployment helpDjango 应用部署帮助
【发布时间】:2009-12-05 16:45:49
【问题描述】:

我正在使用 Capistrano 部署一个 Django 应用程序(它使用 Nginx 作为 Web 服务器),使用我在 http://akashxav.com/2009/07/11/getting-django-running-on-nginx-and-fastcgi-on-prgmr/ 找到的指令(我今天早些时候不得不查看一个缓存版本)并且想知道最后一个命令在那里,这是

python manage.py runfcgi host=127.0.0.1 port=8081 --settings=settings

我从高层次上理解,这告诉应用程序我们要运行一些 FastCGI 二进制文件实例来为该应用程序提供服务。

我想知道如何处理“重置”这个问题的最佳方法是,因为没有更好的词。对于那些不知道的人,Capistrano 通过创建“发布”目录然后提供指向最新版本的符号链接来进行部署。

因为我可以执行部署后任务(我已经使用 CakePHP 应用程序完成了这项工作,以执行诸如为应用程序中的缓存目录正确设置目录权限之类的事情)我想知道如何关闭命令创建的现有进程上面并启动新的。

我希望我说得通。

【问题讨论】:

    标签: python django deployment


    【解决方案1】:

    有一个section in the django docs about this

    基本上使用pidfile选项来manage.py,然后编写一个小的shell脚本来使用该pid在启动新进程之前杀死现有的cgi进程(如果存在)。

    类似的东西

    #!/bin/bash
    if [ -f "pidfile" ]; then
        kill `cat -- pidfile`
        rm -f -- pidfile
    fi
    exec python manage.py runfcgi host=127.0.0.1 port=8081 pidfile=pidfile --settings=settings
    

    NB FastCGI 支持已弃用,将在 Django 1.9 中删除

    【讨论】:

    • 此链接在 2015 年 10 月给出 404
    • @BryanOakley 我更新了链接并注意到 FastCGI 正在被删除 - 感谢您的提醒
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-18
    • 2010-11-16
    相关资源
    最近更新 更多