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
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上的部署的主要内容,如果未能解决你的问题,请参考以下文章
CentOs Linux 对于Django uwsgi + Nginx 的安装与部署
在centos上使用nginx+uwsgi部署django项目