Django+uwsgi在linux和windows上的部署

Posted anzhilengye

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django+uwsgi在linux和windows上的部署相关的知识,希望对你有一定的参考价值。

最近自己写了一个简单的Django项目,打算部署到内部服务器上使用,这几天在Django官网以及百度各种技术博客的搜索,终于在两种平台都部署成功了,为了避免以后遇到类似问题,先暂时记录下整个步骤。

Linux环境:CentOS7 + Pyhton38 +uwsgi + django,我的django项目目录:/app/apps/studyweb

官网文档参考:https://docs.djangoproject.com/zh-hans/3.2/howto/deployment/wsgi/uwsgi/

1、安装uwsgi和django

         python -m pip install https://projects.unbit.it/downloads/uwsgi-lts.tar.gz

          pip install Django

2、进入django项目目录,编辑 uwsgi.ini

        cd /app/apps/studyweb

        vim uwsgi.ini

            [uwsgi]

            chdir=/app/apps/studyweb

            module=studyweb.wsgi:application

            http=0.0.0.0:8000

            processes=4

            threads=2

            master=true

            pidfile=/app/comm/uwsgi/uwsgi.pid

            vacuum=true

            max-requests=5000

            daemonize=/app/logs/uwsgi/uwsgi.log

      上述内容中的每个字段的解释可以到官网参考文档查询

3、新建uwsgi.ini里面的pidfile文件目录和daemonize日志目录

       mkdir -p /app/comm/uwsgi

        cd /app/comm/uwsgi

        touch uwsgi.pid

        mkdir -p /app/logs/uwsgi

4、进入项目目录启动

cd /app/apps/studyweb

      uwsgi --ini uwsgi.ini          #启动服务

       ps -ef |grep uwsgi & kill -9 pid   #关闭服务


Windows环境:window server 2016 + python36 Apache24 + mod_wsgi +Django,我的django项目目录:D:\\Program Files\\studyweb,Apache目录:D:\\Program Files\\Apache24

官网文档参考:https://docs.djangoproject.com/zh-hans/3.2/howto/deployment/wsgi/modwsgi/

部署过程中查阅了这个博客:https://blog.csdn.net/qq_26621613/article/details/80180066

1、下载windows版本的apache,下载后直接解压到本地,我的Apache版本httpd-2.4.51-o111l-x64-vc15

        https://www.apachelounge.com/download/

2 、安装mod_wsgi

              下载mod_wsgi Python: http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi

              安装.whl文件(我为了省事,直接将该文件拷到D盘根目录了,然后运行cmd如下命令安装):

              cd \\

              D:

              pip install "mod_wsgi-4.5.15+ap24vc14-cp36-cp36m-win_amd64.whl"

3、修改D:\\Program Files\\Apache24\\conf\\httpd.conf

              安装mod_wsgi成功后打开cmd运行mod_wsgi-express module-config:                   

                       LoadFile "d:/program files/python/python36/python36.dll"

                      LoadModule wsgi_module "d:/program files/python/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"

                      WSGIPythonHome "d:/program files/python/python36"

        上面的内容加到apahce的httpd.conf中的LoadModule后面,另外还要添加WSGIScriptAlias,WSGIPythonPath,Directory

Django+uwsgi在linux和windows上的部署_django

           LoadFile "d:/program files/python/python36/python36.dll"

           LoadModule wsgi_module "d:/program files/python/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"

            WSGIPythonHome "d:/program files/python/python36"

            WSGIScriptAlias / "D:\\Program Files\\studyweb\\studyweb\\wsgi.py"

            WSGIPythonPath "D:\\Program Files\\studyweb"

            <Directory "D:\\Program Files\\studyweb">

                <Files wsgi.py>

                 Require all granted

                </Files>

            </Directory>

以上添加的内容中每个字段的说明可以到官网上查阅

4、启动apache

      cd D:\\Program Files\\Apache24\\bin

      安装apache服务

       httpd.exe -k install

       启动已安装的apache服务

       httpd.exe -k start

      测试安装结果

       http://ip:port

      停止Apache服务

      httpd.exe -k stop

      重启Apache服务(重新加载配置文件)

        httpd.exe -k restart


以上是关于Django+uwsgi在linux和windows上的部署的主要内容,如果未能解决你的问题,请参考以下文章

线上生产环境部署Djngao+Nginx+Uwsgi

CentOs Linux 对于Django uwsgi + Nginx 的安装与部署

linux下部署uwsgi+nginx+django2.0

在centos上使用nginx+uwsgi部署django项目

Django+Linux+Uwsgi+Nginx项目部署文档

[linux]centos7.4部署django+Uwsgi+Nginx