云linux下超详细部署Django前后端分离项目教程

本文详细介绍了如何在Linux环境下安装部署Nginx和uWSGI,并结合Django项目进行配置。首先,通过yum安装Nginx并启动服务,然后检查状态。接着,安装uWSGI并配置项目,创建虚拟环境,安装依赖。在遇到mysqlclient安装问题时,手动安装mysql-devel和mysqlclient。完成依赖安装后,进行数据库迁移,启动Django项目。最后,将前端与Nginx配置结合,通过http或unixsocket模式实现通信,确保前后端部署成功。

通过使用本地建立虚拟环境方式部署

linux下nginx安装部署

1、首先检查本机自带的有没有nginx -version,没有则可以安装。

2、输入如下,开始安装。

yum -y install nginx

3、然后输入如下。

nginx -version

检查是否安装成功。

4、然后通过

systemctl start nginx

快速启动,然后使用systemctl status nginx查看状态。

systemctl start nginx   #启动nginx服务
systemctl restart nginx #重启服务
systemctl status nginx  #查看状态
systemctl stop nginx    #停止服务

如果访问页面不能显示,则可能的问题是用户不一致。

1、查看当前nginx的登录用户和自己主机的登录用户是否一致,不一致,可能会导致无法访问nginx

输入如下:

ps aux | grep "nginx: worker process" | awk '{print $1}'

2、不一致需要去如下里,修改为root,在下图处修改为当前用户即可,输入:wq 保存退出。

vi /etc/nginx/nginx.conf

3、输入ip地址查看,出现这个如下,代表成功。

linux下安装uwsgi

1、先输入如下,出现如下则证明安装成功。

pip install uwsgi

2、同时本地项目  根目录 下添加 uwsgi.ini 配置项文件,需要注意python 虚拟环境包路径,需要换成你自己的。

[uwsgi]
chdir = ./
#项目根目录,使用相对路径
module = autotpsite.wsgi:application
# 指定wsgi模块下的application对象
http = 0.0.0.0:9000
#http-socket = 0.0.0.0:9000
master = true
#主进程
pythonpath = /pycode_s1/pytestcode/pyenv/lib/python3.9/site-packages
#额外设置虚拟环境包环境,防止uwsgi找不到
home= = ./pyenv
#设置虚拟环境,docker镜像模式下则不需要
socket = ./websocket.sock
#设置使用unix socket模式通信
pidfile = uwsgi.pid
#pid文件,用于下脚本启动、停止该进程,对应使用相对路径
daemonize = uwsgi_server.log
#日志文件
disable-logging = true
#不记录正常信息,只记录错误信息
enable-threads = true
# 允许多线程
buffer-size = 40960
# 设置请求头最大字节数,用于socket模式

3、同时安装django项目依赖包,首先在本地环境项目根目录下执行

pip freeze > requirements.txt

生成一个项目依赖包文件。

4、然后通过git命令上传提交至远程仓库,或者直接在pycharm绑定Gitee账户后右上角点击提交并推送。

git add .
git -m commit "require"
git push origin master

在linux下进入需要安装的目录文件夹,提前绑定好ssh公钥,第一次需要使用  git clone <ssh远程仓库地址>  命令进行拉取代码,后面直接使用 git pull 即可。

5、然后在项目根目录下创建虚拟环境,名字为test,

python3 -m venv pyenv

6、然后激活虚拟环境

. /pyenv/bin/activate  #激活虚拟环境
deactivate    #退出虚拟环境命令

7、然后在虚拟环境下使用安装依赖,等待安装完成,如下图。

pip install -r requirements.txt

*****期间可能出现mysqlclient安装失败问题,这时候需要手动安装*****

依此安装

yum install mysql-develpip install mysqlclient

等待安装成功即可。之后在执行如下安装即可。

pip install -r requirements.txt

6、安装完依赖包后使用

python manage.py makemigrations    #生成迁移文件
python manage.py migrate            #执行迁移文件

生成迁移文件,在执行迁移文件,记得先创建数据库 

CREATE DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

7、最后使用

python manage.py runserver

检查是否安装完成启动成功。

8、然后使用uwigs命令启动配置文件,

uwigs uwigs.ini

会在设置配置文件下,出现日志文件等。

uwsgi --ini uwsgi.ini  #启动服务
uwsgi --stop uwsgi.pid  #停止服务
uwsgi --reload uwsgi.pid  #重启服务
pkill -f uwsgi -9    #停止所有uwsgi进程

开始部署前后端

1、配置前端到nginx上,查看nginx配置文件在哪

nginx -t

开始部署配置变量,这里先使用http配置:

2、进入如下:

vi /etc/nginx/nginx.conf

        删除原本的root指向路径,重写到第一个location / ,root是指向前端打包后的文件夹目录,第二个和刚刚 uwsgi.ini 配置文件的一致。按 :wq 保存退出。

3、出来使用 nginx -t 检查语法无误后,执行如下重启nginx服务。

systemctl restart nginx

4、开始访问http:// <ip_address>,出现前端页面则成功部署。

现在换unix socket模式通信:

1、先在本地 uwsgi.ini 下,添加socket路径,git add . 等命令提交一下代码。

2、然后把uwsgi服务停止掉,git pull拉取一下新修改的代码。

3、重新启动uwsgi服务。

uwsgi uwsgi.ini

4、修改nginx的配置,进入如下:

vi /etc/nginx/nginx.conf

把http模式注释或者删掉,改为如下,然后 :wq 保存退出。

5、重启一下nginx服务。

systemctl restart nginx

6、访问网址,出现前端页面,点击交互有反应,则配置成功。

希望我的教程可以帮助到你,祝你每天开心。

宝塔是一款Linux服务器管理软件,用于简化服务器管理和应用部署部署Django前后端分离项目的步骤如下: 1. **安装环境**: - 确保宝塔已安装Python、Nginx和MySQL等基础服务。 - 需要安装Django框架以及前端所需的Node.js和npm。 2. **创建新站点**: - 登录宝塔控制面板,在"网站管理"或者"应用"模块里点击“添加”创建一个新的Web应用,指定项目路径。 3. **配置域名和SSL**: - 绑定你的域名到宝塔提供的IP地址,并配置SSL证书,保证安全访问。 4. **设置静态文件处理**: - 在Nginx的配置中启用反向代理,例如将`/static`和`/media`目录指向你的Django项目的对应位置,可以使用`.htaccess`文件或nginx的location指令。 5. **Django项目部署**: - 将Django项目打包成.wsgi文件或使用uwsgi启动,这个文件通常放在项目的根目录下。 - 在宝塔的Nginx配置里添加对.wsgi文件的访问规则。 6. **数据库配置**: - 如果有数据库操作,需要在Django项目settings.py中配置数据库连接信息,包括引擎、主机、用户名、密码等。 7. **迁移和运行**: - 进入项目目录,执行`python manage.py migrate`进行数据库迁移。 - 启动Django应用:`python manage.py runserver` (仅限本地测试) 或者 `gunicorn your_project_name:application` (生产环境). 8. **前端部署**: - 使用Git或其他版本控制系统将前端代码推送到服务器相应目录,如public或者dist。 9. **监控和日志**: - 安装并配置好监控工具,以便了解应用性能和日志情况。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值