4、Django+Uwsgi+Nginx的生产环境部署---用uwsgi+nginx部署Django项目

所使用的操作系统与环境

操作系统:centos6.5

Python环境:3.7.0

本文前提

  • 已经能用uwsgi来正常执行django项目,只是加载的static资源有问题
  • 在本地已经安装好了nginx,并且能正常访问

用uwsgi+nginx部署Django项目

配置django关于static资源的路径

修改setting.py文件,加上如下的内容

STATIC_URL = '/static/'
# STATIC_ROOT = 'main/static'
STATIC_ROOT = os.path.join(BASE_DIR,'static')
STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'static')
]

首先配置用uwsgi使用到的ini文件

[uwsgi]

# Django相关的配置
# 必须全部为绝对路径
# 项目的路径
chdir           = /home/zeng/cnr/spider
# Django的wsgi文件
module          = spider.wsgi
# Python虚拟环境的路径
# home            = /home/zeng/anaconda3/bin

# 进程相关的设置
# 主进程
master          = true
# 最大数量的工作进程
processes       = 10
# http= :8082
# socket文件路径,绝对路径
socket          = /home/zeng/cnr/spider/spider.sock
# 设置socket的权限
chmod-socket    = 666
# 退出的时候是否清理环境
vacuum          = true
daemonize=/var/log/spider_uwsgi.log

与uwsgi加载django项目不同的是,这里使用的不是http端口的形式,而是sock的形式,让uwsgi与nginx进行通信

/home/zeng/cnr/spider/spider.sock

这个文件一开始是没有的,在执行了uwsgi后会自动创建

先用这个ini来运行uwsgi
然后使用命令

sudo uwsgi --ini spider_uwsgi.ini

看到产生了.sock文件
> [外链图片转存失败(img-Bk88Um3Y-1565491421787)(49D873AAA6344FD5ACF96E7799D230F3)]

对nginx进行配置

从源代码安装时,nginx的配置文件存放在/usr/local/nginx中,conf/nginx.conf是其配置文件

打开配置文件,需要加上如下内容

在第一行加上,否则会没有权限使用sock文件

user root;

> [外链图片转存失败(img-1RSQYNjV-1565491421787)(BB07FF45ACF148298C18B9F915A89482)]

在server下的location /中加入

# uwsgi_params文件地址
include /usr/local/nginx/conf/uwsgi_params;
uwsgi_pass  unix:///home/zeng/cnr/spider/spider.sock;

> [外链图片转存失败(img-xU4JlBkA-1565491421788)(13C1D6D8FE4B44CD9B22AEB0393E5195)]

在server中error_page的下边加上

error_log    logs/error_spider.log error;
# 最大的文件上传尺寸
client_max_body_size 75M;  

# 静态文件访问的url
location /static {
    # 静态文件地址
    alias /home/zeng/cnr/spider/main/static; 
}

logs/error_spider.log error是nginx出错后的信息,同样的还有access_log,具体可参考

> [外链图片转存失败(img-y4zbuvg4-1565491421788)(EB91F4E004A341A0AA39E809691B157A)]

重新加载nginx的配置

sudo sbin/nginx -s reload

在浏览器中访问django对应的项目
> [外链图片转存失败(img-hJqcsBTd-1565491421788)(20EECEC9302C4739BB1F960C90454774)]

可以看到nginx的转发已经成功了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值