Django+nginx+uwsgi架构部署
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django+nginx+uwsgi架构部署相关的知识,希望对你有一定的参考价值。
一、环境:
Django版本: Django-1.10.6.tar.gz
nginx 版本: nginx-1.11.10.tar.gz
uwsgi 版本: uwsgi-2.0.14.tar.gz
二、安装部署:(在网上能搜到很多这种架构的安装,大都是千篇一律,但是在配置中有几个点说的非常模糊,不够明确。使很多人陷入迷茫之中)
1、将Django、nginx和uwsgi进行源码安装,安装步骤比较简单。
# mkdir -p /data/logs ## 创建uwsgi日志目录 安装nginx # tar -zxvf nginx-1.11.10.tar.gz # cd nginx-1.11.10 # ./configure --user=nobody --group=nobody --prefix=/usr/local/nginx --with-http_stub_status_module --with-cc-opt=‘-O3‘ --with-cpu-opt=opteron # make && make install 安装 uwsgi 解压之后,进入目录直接make,不需要其它 把uwsgi赋值到/usr/bin下 安装 Django 解压之后,进入目录,使用Python setup.py install安装
2、安装错误
解决: # yum -y install gzip-devel zlib-devel
解决: # yum -y install python-devel
三、配置文件
1、nginx配置
在nginx.conf中添加以下server域:
server { listen 80; server_name test.example.com; location / { uwsgi_pass 192.168.216.132:8000; include uwsgi_params; uwsgi_param UWSGI_CHDIR /data/www/mytest; #项目根目录 # uwsgi_param UWSGI_SCRIPT django_wsgi; access_log off; } location ^~ /static { root /data/www/mytest; } location ~* ^.+\.(mpg|avi|mp3|swf|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|txt|tar|mid|midi|wav|rtf|mpeg)$ { root /data/www/mytest/static; access_log off; }
2、uwsgi配置
在nginx.conf同级目录下创建uwsgi.ini文件
[uwsgi] socket = 0.0.0.0:8000 master = true pidfile = /usr/local/nginx/uwsgi.pid processes = 8 chdir = /data/www/mytest wsgi-file = mytest/wsgi.py ## 项目文件 pythonpath = /data/www profiler = true memory-report = true enable-threads = true logdate = true limit-as = 6048 daemonize = /data/logs/django.log
3、创建项目
在/data/www目录下创建项目 #django-admin.py startproject mytest ## mytest为项目名字 启动nginx和uwsgi # /usr/bin/uwsgi --ini /usr/local/nginx/conf/uwsgi.ini # /usr/local/nginx/sbin/nginx
4、报错
解决:在创建的项目中把settings.py文件中的ALLOWED_HOSTS = [ ] 修改成ALLOWED_HOSTS = [ ‘*’],并重启uwsgi
5、成功结果
本文出自 “sunny's blog” 博客,谢绝转载!
以上是关于Django+nginx+uwsgi架构部署的主要内容,如果未能解决你的问题,请参考以下文章
Django部署时为什么要用 uWSGI与 Nginx? 以及 WSGI,uwsgi等协议
python3 + Django + uwsgi + nginx 配置部署笔记
Django 部署 CentOS7+Python3+Django+uWSGI+Nginx(含Nginx返回400问题处理防火墙管理)