本文是针对毕业设计展示,小公司项目部署展示的一个小型系统,仅供参考。
该项目演示是一个小型工时系统,前端采用了vue-template模板,后端使用django rest framework框架,包含了cache redis的缓存使用,celery的异步定时任务,supervisor的进程统一管理 venv + nginx + uwsgi+supervisor的一整套服务搭建。简单easy。
项目地址----------------
步骤
安装必要软件包
-
更新yum源安装软件管理包
yum update -y yum -y groupinstall "Development tools" yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel
-
下载python3.8.5 并安装
cd /usr/local wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz tar -zxvf Python-3.8.5.tgz cd Python-3.8.5 # prefix 收集到指定的文件所有配置文件都将在python3下 ./configure --prefix=/usr/local/python3 # 编译安装 make make install # 软连接 ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3
-
django 项目上传到服务器
这里直接使用xftp上传到指定目录下 项目文件目录名为django-admin-workmkdir /root/django_admin_work mv django-admin-work /root/django_admin_work/django-admin-work
-
安装并创建虚拟环境
pip3 install virtualenv -i https://pypi.douban.com/simple/ ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv # 创建 djvenv 指定python cd /root/django_admin_work/django-admin-work/ mkdir venv_admin cd venv_admin virtualenv --python=/usr/bin/python3 djvenv # 开启虚拟环境 source djvenv/bin/activate # 关闭虚拟环境 deactivate
vue 打包 dist目录
将本地生成的打包后的dist文件拷贝到服务器上
/root/django_admin_work/dist
部署django
第一 测试django单一启动
django文件目录放置在/root/django_admin_work/django-admin-work 进入文件夹下安装在本地生成的requirements.txt文件
# 启动刚才建立的虚拟环境
source venv_admin/djvenv/bin/activate
# 安装项目所需要的的python第三方包
pip install -i https://pypi.douban.com/simple -r requirements.txt
# 安装完成后测试
python3 manage.py runserver
# 允许外网访问
python3 manage.py runserver 0.0.0.0:8000
如果访问失败,看端口是否允许,阿里云配置开启端口组。
第二 使用uwsgi + nginx 启动django
安装配置uwsgi
# 安装
pip install -i https://pypi.douban.com/simple uwsgi
uwsgi 配置 使用 xml ini yaml 都可以 本次使用 xml
uwsgi 文档 https://uwsgi-docs.readthedocs.io/en/latest/WSGIquickstart.html
# 在项目的根目录下创建 djuwsgi.xml
touch djuwsgi.xml
# 具体文件内容如下
<uwsgi>
<socket>127.0.0.1:8899</socket>
<chdir>/root/django_admin_work/django-admin-work/</chdir>
<module>WTS.wsgi</module>
<processes>4</processes>
<daemonize>djuwsgi.log</daemonize>
</uwsgi>
# 启动uwsgi
uwsgi -x djuwsgi.xml
# 显示 [uWSGI] getting INI configuration from uwsgi.ini 表明uwsgi运行成功
# 通过ps -ef|grep uwsgi 查看确认是否uwsgi启动. ps aux |grep uwsgi
# 停止运行uwsgi,通过包含主进程编号的文件设置停止项目
uwsgi --stop uwsgi.pid
# 重启uwsgi
uwsgi --reload uwsgi.pid
# 找不到pid文件的话 直接杀死进程 kill -9 uwsgi
安装配置nginx
# root 权限
sudo yum install nginx
# 编辑 etc/nginx.conf 文件
vim /etc/nginx.conf
user root;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
include /etc/nginx/conf.d/*.conf;#主要是这个地方,把新建的两配置文件包含进来
#server {
# listen 80 default_server;
# server_name _;
# return 404;
# }
}
# 在相应的conf.d 文件夹下编写相应的配置文件 本项目使用django 以及vue 相关nginx配置
# djadmin.conf vue-admin.conf
vim djadmin.conf
server {
listen 8001;
server_name localhost;
charset utf-8;
root /root/django_admin_work/dist/;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8899; #端口要和uwsgi里配置的一样
uwsgi_param UWSGI_SCRIPT WTS.wsgi; #wsgi.py所在的目录名+.wsgi
uwsgi_param UWSGI_CHDIR /root/django_admin_work/django-admin-work/; #项目路径
}
location /static/ {
alias /root/django_admin_work/django-admin-work/static/; #静态资源路径
}
}
vi vue-admin.conf
server {
listen 9001;
server_name 127.0.0.1;
charset utf-8;
location / {
root /root/django_admin_work/dist/;
try_files $uri $uri/ /index.html;
}
}
配置完成,下面开始启动
nginx
# 重启
nginx -s reload
外网访问 9001端口即可访问vue页面 访问8001则是api接口