Django 项目部署
Ubuntu+Django+Nginx+uWSGI+MySQL+阿里云
一、阿里云配置
1. 购买阿里云
2. 配置安全组
2.1 外网访问
2.2 数据库
3.Navicat 连接数据库
4. xftp项目上传
二、MySQL配置
1. MySQL安装
2. MySQL远程连接
修改配置文件中的bind-address 文件路径: /etc/mysql/mysql.conf.d/mysqld.cnf 将bind-address = 127.0.0.1修改为bind-address = 0.0.0.0 重新启动并登陆mysql sudo service mysql restart 2 mysql -uroot -p 修改权限: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION; FLUSH PRIVILEGES; 重新启动mysql sudo service mysql restart 注意:有时重启服务器后mysql未启动导致远程无法连接只需启动mysql sudo service mysql start 总结:这就是我在Ubuntu上的配置方法,亲测可用,可能还有其他的配置方法,仅供参考,谢谢。
三、Django配置
1.setting配置
1.1 static静态文件
1.2 访问
1.3 跨域请求
2. uWSGI
三、Ubuntu配置
1. 虚拟环境
2. 安装uWSGI
WSGI:PythonWeb服务器网关接口(Python Web Server Gateway Interface),这是一种协议规范,用于规范web server(比如uWSGI)和web application(Flask、Django等)之间的通信方式。这种协议其实是将我们和更加底层的HTTP、TCP等协议分隔开来,使我们在开发的时候可以不用自己去实现这些协议的处理,只关注于更高层次的逻辑处理,实现面向对象的编程。
uWSGI:uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。它本身可以作为一个服务器单独使用,但是也可以和nginx组合使用。一般Django部署都是用的nginx+uWSGI,可以理解为这种组合性能更优。
3. 安装Nginx
nginx:这是一个高性能的web服务器/反向代理,类似Apache。什么叫反向代理,客户端通过一个代理去访问服务器,这样的代理叫正向代理;同样的服务器前加一个代理和客户端通信,这样的代理叫反向代理。nginx就是用来放在uWSGI前做反向代理。
4.Nginx采集静态文件
项目中request请求中,静态文件交给nginx处理,动态文件交给django处理
4.1 nginx配置
root指定的目录是location匹配访问的path目录的上一级目录,这个path目录一定要是真实存在root指定目录下的;
alias指定的目录是准确的,即location匹配访问的path目录下的文件直接是在
4.1.1 root 目录配置
4.1.2 alias 目录配置
4.2 cd/var/www 静态文件
4.2.1 建立采集静态文件夹
4.2.2 文件夹加权限