码迷,mamicode.com
首页 > 其他好文 > 详细

Django+Nginx+uWSGI部署

时间:2017-11-01 14:50:27      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:install   enable   apt-get   ast   alias   chdir   dir   pidfile   ima   

一.介绍

Django的部署有多种方式,采用Nginx+uWSGI的方式是最常见的一种方式。在这种方式中,将Nginx作为服务器前端,接收Web的所有请求,统一管理请求。Nginx自己处理所有静态请求,所有非静态请求通过uWSGI传递给Django,由Django来进行处理,从而完成一次Web请求。

 

二.安装配置

环境:Python(3.5.2)、Django(1.11.6)

1.安装pip

root@787c084a44e4:~# apt-get install -y python3-pip 

2.安装uWSGI

root@787c084a44e4:~# python3 -m pip install uWSGI 

3.安装Django

root@787c084a44e4:~# python3 -m pip install Django 

4.安装Nginx

root@787c084a44e4:~# apt-get install -y nginx 

5.通过文件配置uwsgi,新建文件/root/web/uwsgi.ini

[uwsgi]
# 监听IP和端口
socket = 127.0.0.1:9090
# 项目主目录
chdir = /root/web/Django
# uwsgi文件路径
module = Django.wsgi:application
# 允许主进程存在
master = True
# 开启的进行数
workers = 1
# 服务器退出时自动清楚环境
vacuum = True
# 设置工作进程请求上限
max-requests = 1000
# 记录主进行的pid
pidfile = /var/uwsgi.pid
# 使进程在后台运行
daemonize = /var/uwsgi.log

6.配置nginx虚拟主机,新建文件/etc/nginx/sites-enabled/django.conf

# nginx需要连接的后端代理
upstream django {
    server 127.0.0.1:9090;
}

# 虚拟主机配置
server {
    # 监听端口
    listen 8080;
    # 域名
    server_name 127.0.0.1;
    # 编码
    charset utf-8;
    # 静态文件路径
    location /static {
        alias /root/web/Django/static;
    }
    # 将动态请求转发到uwsgi运行的django程序
    location / {
        uwsgi_pass django;
        include /etc/nginx/uwsgi_params;
    }
}

7.修改nginx默认运行用户,修改/etc/nginx/nginx.conf文件,user www-data修改为user root

三.验证部署

运行工程

root@787c084a44e4:~/web# uwsgi --ini uwsgi.ini & nginx

访问地址http://127.0.0.1:8080/list,数据和页面css样式正常

技术分享

 

四.异常情况

1.出现DisabllowedHost

技术分享

 修改Django/Django/settings.py文件

 ALLOWED_HOSTS = ["*"] 

2.出现静态文件403异常

技术分享

Nginx使用www-data用户运行,无web目录读取权限,修改/etc/nginx/nginx.conf文件,user www-data修改为user root

Django+Nginx+uWSGI部署

标签:install   enable   apt-get   ast   alias   chdir   dir   pidfile   ima   

原文地址:http://www.cnblogs.com/faramita2016/p/7736313.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!