django部署

该文详细介绍了如何配置服务器环境,包括安装Django和Python,使用uWSGI替代内置服务器,以及配置uWSGI的详细步骤。同时,文章还涉及了Nginx的安装和配置,用于反向代理和负载均衡,解决静态文件的处理,并列举了在部署过程中可能遇到的问题及解决方案。
摘要由CSDN通过智能技术生成

1. 配置服务器

安装django,python等服务–尽量和你的自己的配置相同,一摸一样避免出现问题

2.django项目迁移

sudo scp /home/tarena/django/mysitel root@88.77.66.55:/home/root/xxx
#然后输入密码

3,用uWSGI

替代python manage.py runserver 方法启动服务器

WSGI是什么,服务接口,在django和http交互,重要的桥梁

uWSGI是一种WSGI的一种,实现了http协议,WSGI协议,以及uwsgi(二进制,全小写,uWSGI自己实现的)

uWSG是以学习配置为主

uWSGI安装

#Ubuntu
sudo pip3 install uwsgi==2.0.18 -i httpsL//pyppi.tuna.tsinghua.edu.cn/simple/
#检查是否安装成功
sudo pip3 freeze|grep -i 'uwsgi'
#如果安装成功,则会输出uWSGI==2.0.18

配置uSWGI

  • 添加配置文件 项目同名目录下/uwsgi.ini

  • #uwsgi文件配置
    [uwsgi]
    #ip地址:端口号,两种模式,用http
    socket=127.0.0.1:8000
    http=127.0.0.1:8000
    #项目当前工作目,必须绝对路径
    chdir=/ohme/tarena/.../my_project
    #项目中wsgi.py文件的目录,相当于工作目录
    wsgi-file=my_project/wsgi.py#相对于chdir的相对路径
    #进程个数
    process=4
    #每个进程的线程
    threads=2
    #pid记录文件
    pidfile=uwsgi.pid
    #服务的日志文件位置
    daemonize=uwsgi.log
    #开启主进程管理模式
    master=true
    
    ##特殊说明:django的settings.py需要做如下配置
    #1,修改settings.py 将DEBUG=True改为DEBUG=False
    #2,修改setting.py将ALLOWED_HOSTS=[]改为ALLOWED_HOSTS=['网站域名']或者['服务监听的ip地址']---公网ip或者域名
    
    

    启动uwsgi

    • cd到uWSGI配置文件所在目录

    • uwsgi --ini uwsgi.ini

    停止uwsgi

    • cd到uWSGI配置文件所在目录
    • uwsgi --stop uwsgi.pid

查看是否启动或停止

  • ps aus|grep ‘uwsgi’

测试

  • 输入http://127.0.0.1:8000/url进行测试
  • 此时由uWSGI进程启动

4,iWSGI常见问题

1,启动失败:端口占用

sudo Isof -i:端口号,查出进程,杀掉:sudo kill -9 pid

2,停止失败

重复启动,导致pid被换了

ps到处进程号,直接kill进程

3,没找到项目

配置的UWSGI.ini位置错误

5,配置ngix反向代理服务器

负载均衡,反向代理和HTTP代理

推荐用uwsgi,二进制更紧凑

sudo apt install nginx
#如果速度慢,换国内源
vim /etx/cap/sources.list
#更改国内源
sudo apt-get uodate
#上述过程自行百度
#安装完毕后-ngnix -v查看版本

配置

​ 修改nginx的配置文件 /etc/nginx/sites-enableed/default;

#在server节点下添加新的location项,指向uwsgi的ip和端口
server {
	...
	location / {
		uwsgi_pass 127.0.0.1:8000;#重定向到127.0.0.1的8000端口
		include /etc/nginx/uwsgi_params;#将所有的参数转到uwsgi下
	}
}

启动

$sudo /etc/init/d/nginx start|stop|restart|status
#或
$sudo server nginx start|stop|restart|status

启动 -sudo /etc/

检查语法问题

#检查语法
sudo nginx -t

改完nginx后还需要改一下uWSgI

[uwsgi]
#http=127.0.0.1:8000改为
socket=127.0.0.1:8000

6,ngix

常见问题

502

404

配置静态文件路径,解决静态路径问题

  • static目录更换
#在settings里面增加一个,STATIC_ROOT='当前目录下/项目名_static/static'
#文件夹记得提前mkdir(创建)好
#运行static更新
python3 manage.py collectstatic
  • 配置nginx寻找static路径

    #sudo vim进入default文件,配置server
    server {
    	location /static{
    		root /home/tarena/mysite7_static;
    	}
    }
    
    • 配置结束,重启
    sudo /etc/init.d/nginx rest
    

    n1-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值