美文网首页
使用docker启动uWSGI和nginx来部署Django项目

使用docker启动uWSGI和nginx来部署Django项目

作者: FengZai8 | 来源:发表于2018-03-14 21:34 被阅读225次

    概念

    一个web服务器面对的是外部世界。它能直接从文件系统提供文件 (HTML, 图像, CSS等等)。然而,它无法直接与Django应用通信;它需要借助一些工具的帮助,这些东西会运行运用,接收来自web客户端(例如浏览器)的请求,然后返回响应。

    一个Web服务器网关接口(Web Server Gateway Interface) - WSGI - 就是干这活的。 WSGI 是一种Python标准。

    uWSGI是一种WSGI实现。在这个教程中,我们将设置uWSGI,让它创建一个Unix socket,并且通过WSGI协议提供响应到web服务器。最后,我们完整的组件栈看起来将是这样的:
    the web client <-> the web server <-> the socket <-> uwsgi <-> Django

    部署静态文件

    在运行nginx之前,你必须收集所有的Django静态文件到静态文件夹里(不收集那么admin页面无法正确加载)。首先,必须编辑mysite/settings.py,添加:

    STATIC_ROOT = os.path.join(BASE_DIR, "static/")
    STATIC_URL = '/static/'
    

    然后运行

    python manage.py collectstatic

    克隆dockerfile

    我的github:https://github.com/xf1688/nginx-uwsgi-django
    把django项目的根目录下的所有文件复制到app/文件夹下面,然后直接运行

    python3

    • docker build -t djangoapp .
    • docker run -d -p 0.0.0.0:80:80 djangoapp

    python2

    • docker build -f Dockerfile-py2 -t djangoapp .
    • docker run -d -p 0.0.0.0:80:80 djangoapp

    相关文章

      网友评论

          本文标题:使用docker启动uWSGI和nginx来部署Django项目

          本文链接:https://www.haomeiwen.com/subject/qvmqqftx.html