Django的生产版本?

时间:2016-08-17 23:11:38

标签: python django apache production

所以我一直在为另一个部门的Badgr服务器工作。我用Python 2.7和django构建了它。据我所知,Django仅用于开发网站。

我想接受这个项目并将其转换为针对生产环境运行的东西。但我真的不知道如何继续。很抱歉,如果这是一个真正的noob问题,我是系统管理员,而不是开发人员。

(env)[root @ badgr code]#。/ manage.py runserver& 执行系统检查......

系统检查发现没有问题(0静音)。 2016年8月8日 - 16:31:48 Django 1.7.1版,使用设置'mainsite.settings' 在##### // 127.0.0.1:8000/启动开发服务器 使用CONTROL-C退出服务器。

但是当我去##### // myserver:8000时,我似乎无法连接到它,

我知道来自我的电脑的流量正在袭击服务器,因为我在TCP 8000上的tcpdump中看到它。我被告知runserver阻止来自外部源的流量,因为它仅用于开发。

与某些人交谈后,他们建议我切换到Apache或Gunicorn?

以下是我从Django文档发送的一些说明:https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/虽然我不能真正做出我应该做的事情的正面或反面。任何输入将不胜感激。感谢

2 个答案:

答案 0 :(得分:0)

首先,您应该真正使用"长期支持" Django的版本,而不是1.7.1。目前的LTS版本是1.8.14;有关详细信息,请参阅https://www.djangoproject.com/download/

您获得的Django文档链接只是您需要了解的部分内容。一个更好的起点实际上是该页面上的第一个链接,即https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/modwsgi/

答案 1 :(得分:0)

我建议您使用gunicorn和Nginx在生产服务器上运行Django项目。两者都很容易谷歌官方文档和食谱,他们的组合是最快的,只要你的代码不要慢。 (Nginx + uWSGI是另一个不错的选择,但对初学者来说有点困难)。

Gunicorn可以使用pip install unicorn安装,也可以像安装Django一样安装,然后使用简单的gunicorn yourproject.wsgi启动(有关更多配置选项,请参阅文档)。

Nginx(使用您的发行版的软件包管理器进行安装)应该配置为反向代理模式,并且还要提供来自相应静态/媒体根目录的静态/媒体文件(必须使用manage.py collectstatic来保持静态文件-至今)。阅读文档以了解基本原则并使用此功能,但/etc/nginx/sites-enabled/yoursite.conf

的示例除外
server {
    listen 80 default;
    server_name example.com;
    root /path/to/project/root/static;

    location /media {
        alias /path/to/project/root/media;
    }

    location /static {
        alias /path/to/project/root/static;
    }

    location /favicon.ico {
        alias /path/to/project/root/static/favicon.ico;
    }

    location / {
        proxy_pass  http://localhost:8000;
        include     proxy_params;
    }
}

如果您需要ssl或www / non-www重定向(强烈建议设置),还有更多内容,但这个示例应该足以让您开始使用。

要自动运行gunicorn,您可以使用主管或系统单元系统(无论是系统还是其他系统)。

注意:所有这些都假设您使用的是Linux。无论如何,您可能不应该在生产服务器上使用任何其他东西。

如果您觉得无法理解如何处理这一切,请考虑获得一些专业帮助,有很多自由职业系统管理员会很乐意以合理的费用帮助您。