项目部署
软件开发完成后,放到服务器上—长期稳定的运行
公有云—公有IP,应用服务器
阿里云
腾讯云
华为云
登录----ssh 公有ip----安装环境
- 在服务器,安装配置相同版本的环境
- 迁移django项目: sudo scp -r /home/lauf/project user@ip:/home/root/
输入密码 - 用uWSGI服务 启动服务,不再使用runserver
- 配置nginx反向代理
- 用nginx配置静态文件路径
仅仅开发测试中,使用runserver
实际部署替换位uwsgi
wsgi
web服务网关接口,uwsgi 是wsgi的一种,提供了http协议、wsgi协议及uwsgi协议
学习以配置、运行为主
- 安装uwsgi
sudo pip3 install uwsgi==2.0.18 -i https://pypi.tuna.tsinghua.edu.cn/simple/
sudo pip3 freeze | grep -i "uwsgi"
- 添加配置文件
在主应用下,创建uwsgi.ini
名字也可以改xxx.ini
#uwsgi.ini
[uwsgi]
#监听http请求
http=127.0.0.1:8000 #请求此地址,进入服务端
#socket=127.0.0.1:8000 监听socket请求,需有nginx
chdir=/home/lauf/xxxxx/project #进入项目根目录
wsgi-file = project/wsgi.py #主应用下的文件
process=4 #进程数
threads=2 #每个进程的线程数
pidfile = uwsgi.pid #服务的pid记录文件
daemonize=uwsgi.log #日志文件
master=True/true #主进程管理模式
- settings.py
DEBUG = False
ALLOWED_HOST = ["127.0.0.1"/"localhost"] #公网IP
- 启动uwsgi
# cd 到 uwsgi.ini
uwsgi --ini uwsgi.ini #后台启动服务
ps aux|grep -i "uwsgi" #查看是否启动
uwsgi --stop uwsgi.pid #停止服务,并确认是否关闭
#日志文件--uwsgi.log 排错
#django代码变动,则需重启 uwsgi
- 浏览器访问http://127.0.0.1:8000/url,进入uwsgi服务
遇到的问题:
400,解决ALLOWED_HOST => [‘ip’]
500,wsgi_file 配置错误,=>wsgi-file
实战代码
代码
提取码:cu33
uwsgi 启动服务
测试:/test_wsgi/
注意ip 的配置—要么局域网ip,要么公网ip
uwsgi 常见问题
- 启动失败
若端口被占用,查看占用该端口的进程
sudo lsof -i:8000
sudo kill -9 pid #杀掉该进程
- 关闭失败 uwsgi --stop uwsgi.pid
多次重复启动uWSGI服务,导致uwsgi.pid中的进程id失准
手动关闭进程
sudo ps -aux|grep -i "uwsgi"
sudo kill -9 pid