vue django部署
部署前的准备
在开发完django后端接口和vue前端页面之后,我们的代码并不能直接放到远程服务器上去部署,需要一些准备,下面是在项目已经在本地对好接口,可以运行的情况下的部署准备操作
前端vue项目准备
1.页面开发完成,修改main.js文件中的baseURL,将原本的方便开发调试的localhost修改为远程服务器的公网地址,如图:
2.为了去掉vue项目生成后url中的#号,需要在router文件夹中的index.js文件中,在导出(export)的部分中加上:
mode: 'history',
如图:
3.做好上面的准备后,在vue项目所在的目录下打开cmd窗口,输入:
npm run build
将项目打包为一个dist文件夹
后端项目准备
1.在django项目中,先关掉Debug模式,将ALLOWED_HOSTS设置为['*'],方便所有网址访问:
2.在pycharm控制台或者本地路劲的cmd窗口输入:
pip freeze > requirements.txt
将这个项目所需的依赖包目录存进requirements.txt文件中
3.将数据库的用户名、密码等修改为服务器的mysql数据库名(如果服务器没有安装数据库,先安装,再配置)
linux服务器部署准备
1.在linux服务器中,创建一个文件夹,来保存整个项目,我创建的是一个/home文件夹。
完成后,在/home文件夹中创建三个文件夹
code: 用来存储项目的所有代码
conf: 用来存储这个项目所需的配置文件
logs: 用来存放产生的日志文件
在/home文件夹中创建pythn虚拟环境:
python3 -m venv venv
后一个venv为虚拟环境名称,并激活虚拟环境
source venv/bin/activate
2.开启linux中的mysql数据库,在数据库中创建django settings.py文件中所配置的数据库名,将vue项目准备时生成的dist文件夹和后端整个项目传过来,放在code文件夹中,去到code文件夹的django项目目录,使用命令行迁移文件:
python manage.py makemigrations
python manage.py migrate
3.同样在django项目目录下,安装项目所需的依赖包:
pip install -r reuqirements.txt
此时可以使用如下命令检查是否安装成功
pip list
4.安装uwsgi:
pip install uwsgi
此时所有的准备工作完成
uwsgi配置文件
1.去到刚刚创建的conf文件夹中,创建一个uwsgi.ini文件,vim打开该文件,进行如下配置
2.配置文件书写完成后,使用命令运行uwsgi(使用ini配置文件运行):
uwsgi --ini uwsgi.ini
nginx配置文件
1.同样在conf文件夹中创建nginx.conf文件,进行如下配置:
2.在/etc/nginx/nginx.conf文件中配置总的nginx文件:
3.此时启动nginx,在浏览器中访问即可
systemctl start nginx
此时,vue+django的http就已经完成了。
HTTPS部署
在http部署完成以后,我们可以在浏览器上对项目进行访问,但是我们所有的接口、cookie等传输均为http不安全传输,也不被chrome、firefox等主流浏览器所认同,显示为非安全连接。
我们需要将所有的请求和连接都设置为https连接,保证文件传输的可靠性。
ssl证书准备:示例为阿里云服务器
1.在阿里云官网控制台上,购买好对应的ssl证书,在ssl证书控制台下载对应证书到本地:
2.在本地解压后出现两个文件:分别为.key, .pem文件
此时在/etc/nginx/目录下创建一个名为cert的文件夹,将证书解压后的两个文件夹放到cert文件夹下
vue代码修改
将main.js中的baseURL修改如下:
Django配置修改
打开django项目的settings.py文件,在配置文件的末尾加上如下配置:
nginx配置文件修改
去到conf文件夹中,打开nginx.conf文件,在文件中做如下修改:
现在一切准备就绪,重启uwsgi和nginx服务器即可。
本文章为博主亲测,如有bug,请联系我,谢谢!