CentOS7+Python3+Django+Uwsgi+Nginx部署项目
Django是用python语言写的开源web开发框架,并遵循MVC设计。模型(M)- 编写程序应有的功能,负责业务对象与数据库的映射(ORM)。视图(V)- 图形界面,负责与用户的交互(页面)。控制器(C)- 负责转发请求,对请求进行处理。正式发布web服务,我们需要一个可以稳定而持续的服务器,我们可以将 uWSGI 和 Nginx Web 服务器结合使用,实现更高的并发性能。
参考文档:
https://www.runoob.com/django/django-nginx-uwsgi.html
Python3:
https://blog.csdn.net/sere0211/article/details/107661822
1.安装基础开发包
通过 yum 命令安装基础开发包
yum groupinstall -y "Development tools"
yum install -y zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
2.安装Django
通过 pip 命令安装 django
pip3 install django
安装项目所需要的依赖模块
# 在本地开发电脑打包
pip freeze > requirements.txt
# 将requirement.txt上传至服务器进行安装
pip3 install -r requirement.txt
Django接口可以通过localhost或者127.0.0.1进行访问,但无法通过本机ip地址访问,修改django项目中的settings.py文件
vim settings.py
# 添加如下配置
DEBUG = False
ALLOWED_HOSTS = ['*']
测试django是否正常,运行
python3 manage.py runserver 0.0.0.0:8000
在浏览器上输入:http://192.168.3.178:8000 检查django是否运行正常
3.安装Uwsgi
通过 pip 命令安装 uwsgi
pip3 install uwsgi
# 创建uwsgi软链接
ln -s /usr/local/python3/bin/uwsgi /usr/local/bin/uwsgi
# 查看uwsgi版本
uwsgi --version
新建uwsgi.ini配置文件,我这里创建在项目文件夹中
vim /home/python/django/uwsgi.ini
# 添加如下配置
[uwsgi]
# 指定项目的目录
chdir = /home/python/django/
# 指定项目的application
module=django.wsgi:application
# 开启的进程数量
workers=4
# 指定IP端口
http=192.168.3.178:8080
# 启动uwsgi用户名
uid=root
# 启动uwsgi用户组
gid=root
# 启用主进程
master=true
# 当服务器退出的时候自动清理环境,删除socket文件和pid文件
vacuum=true
# 序列化接受的内容,如果可能的话
thunder-lock=true
# 启用线程
enable-threads=true
# 设置自动中断时间
harakiri=60
# 设置缓冲
post-buffering=4096
# 修改自动重启
py-autoreload=1
# 指定静态目录
static-map=/static=/home/python/django/static
# 指定pid路径
pidfile=/home/python/django/script/uwsgi.pid
# 指定sock路径
socket=/home/python/django/script/uwsgi.sock
# 设置log路径
daemonize=/home/python/django/script/uwsgi.log
完成配置后,可以用如下命令操作uwsgi服务
# 启动
uwsgi --ini uwsgi.ini
# 重启
uwsgi --reload uwsgi.pid
# 关闭
uwsgi --stop uwsgi.pid
# 用yum安装killall命令
yum install -y psmisc
# killall命令关闭
killall -s INT uwsgi
在浏览器上输入:http://192.168.3.178:8080
4.安装Nginx
通过 yum 命令安装 nginx
yum install -y nginx
vim /etc/nginx/conf.d/uwsgi.conf
# 添加如下配置
server {
listen 8000;
server_name 192.168.3.178;
location / {
include uwsgi_params;
# uwsgi_pass 192.168.3.178:8080
uwsgi_pass unix:/home/python/django/script/uwsgi.sock;
}
}
重启nginx服务
systemctl restart nginx
在浏览器上输入:http://192.168.3.178:8000
来源:oschina
链接:https://my.oschina.net/u/4290521/blog/4480139