【小白亲历,详细教程】ubuntu, nginx, uwsgi 部署Django 项目

一、nginx+uwsgi

首先, nginx是直接处理请求的,uwsgi是负责运行项目的。

先按照此教程配置。https://blog.51cto.com/sdsca/2044983

注意以下几点:

1】如果修改创建文件遇到permmit denied 的情况,用sudo su 切换到超级用户。

2】3.2  安装  uwsgi 这一节中用的命令,如果提示“no request plugin is loaded, you will not be able to manage requests.
” 需要用 apt-get uwsgi-plugin-python3 安装,如果是python2直接  apt-get uwsgi-plugin-python

并且启动时也要加上:  uwsgi --ini uwsgi.ini --plugin python3

并且这一步进行的是本机测试,需要在服务器上用localhost:8000测试,不可以直接用公网IP。

3】3.3 创建软连接时,不要像教程这么写,路径都用绝对路径,不然检测nginx配置文件时会报错。

4】使用sudo nginx -t 检查nginx配置文件,使用sudo nginx -s reload重启nginx

5】如果8010端口还是无法访问,设置防火墙:

firewall-cmd --zone=public --add-port=8010/tcp --permanent

systemctl restart firewalld.service

6】然后再访问,可能就变成这样啦!到这里nginx,uwsgi的配置就成功了。

二、修改Django工程

1、你需要在django项目中设置8010端口。在setting.py下修改ALLOWED_HOSTS即可。

2、登录admin,你可能遇到attempt to write a readonly database的错误。这其实是因为你启动uwsgi的账户权限不够(如果按照教程,就是在/opt/OurCMDB文件夹下权限不够)。你可以将工程移动到/home/<username>下。也可以修改你在/opt/OurCMDB下的权限。先进入到db.sqlite3所在目录,然后依次:

sudo chmod 777 db.sqlite3

cd ..

sudo chmod 777  *

再登录试试,已经可以了。

3、你应该需要后台启动uwsgi——使用 -d:

uwsgi -d --ini uwsgi.ini --plugin python3

--logto 选项可以帮助你输出log

注意,修改项目代码后需要重启uwsgi。

 

三、其他错误

使用nginx -s reload 重启nginx报错(原因是nginx根本没有启动,当然不能重启)

nginx -c /etc/nginx/nginx.conf

nginx -s reload

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值