完善的django项目上线,有不少种上线的方法,好比apache, uwsgi, nginx等。这里只介绍2种,一种是django自带的,另一种则是nginx + uwsgi完成介绍。这里的系统环境采用的是ubantu系统, python环境采用的是python3, django环境采用1.11python
数据从pycharm转移到ubantu中。使用xshell软件mysql
数据库迁移:
若是django项目中的数据是在本地的mysql中,须要将它的数据迁移到远程链接的数据库中。使用navicat操做, 在工具下拉列表中有一个数据传输按钮nginx
(1) 查找 mysql.conf, 通常在/etc/mysql/mysql.conf.d目录下
find / -name mysql.cnf
(2)注释掉mysql.cnf文件中bind.conf.d,使外网也能够访问数据库
vim /etc/mysql/mysql.conf.d/mysqld.cnf
web
在工程urls.py里部署首页访问的地址: views.home是本身设置的一个方法,是路由指向的地址
url(r'^$', views.home)sql
安装pip3 :up主在这里遇到过一个bug,安装不上库文件,这时候你须要将pip3更新到最新的版本
apt install python3-pip
安装必备库:
pip3 install django
pip3 install pymysql
pip3 install pillowshell
看看端口啥的, 若是80端口被占用了,下面能够更换到其余端口,也能够直接kill -9 掉占用端口的程序
netstat -lntp数据库
进入manage.py文件目录下:
python3 manage.py runserver 0.0.0.0:8000apache
关于nginx和uwsgi与django的联系,有一篇博文讲得简单明了
https://blog.csdn.net/u014761344/article/details/40146597
(1)nginx:
nginx概念:
Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
nginx应用场景:
一、 http服务器。Nginx是一个http服务能够独立提供http服务。能够作网页静态服务器。
二、 虚拟主机。能够实如今一台服务器虚拟出多个网站。例如我的网站使用的虚拟主机。
基于端口的,不一样的端口
基于域名的,不一样域名
三、 反向代理,负载均衡。当网站的访问量达到必定程度后,单台服务器不能知足用户的请求时,须要用多台服务器集群可使用nginx作反向代理。而且多台服务器能够平均分担负载,不会由于某台服务器负载高宕机而某台服务器闲置的状况。
(2)uwsgi
uwsgi概念:
uWSGI实现了WSGI的全部接口,是一个快速、自我修复、开发人员和系统管理员友好的服务器django
nginx启动后,能够在公网的ip地址上看到welcome to nginx
sudo apt-get install nginxvim
systemctl status nginx 查看nginx的状态
system start/stop/enable/disable nginx 启动/关闭/设置开机启动/禁止开机启动
service nginx status/stop/restart/start 查看状态/中止/重启/开启 ngnix
安装完成后,若是不能启动nginx,可使用 ps -ef | grep nginx 查看进程,杀掉所有的nginx进程,再从新启动nginx
pip install uwsgi
up主这里使用本身的.conf文件放在 /home/app/conf/的,这里建议你们创建一个统一的文件夹来管理conf文件
进入nginx的配置文件:
vim /etc/nginx/nginx.conf
修改文件:增长 include /home/app/conf/.conf;
up主建议每个项目都单独创建一个conf文件
找到本身建立的conf文件, 并进入配置:
vim /home/app/conf/axfnginx.conf
配置:
up主是将uwsgi.ini文件与conf文件放在一块儿的
pythonpath为工程文件目录
scoket要与nginx中的彻底相同
logto为保存日志文件的地方
nginx和uwsgi还能够配置更多的东西,这里配置的都是最简单须要的内容
- [uwsgi] 必须有 , 否则会报如下错
Can't find section "uwsgi" in INI configuration file myweb_uwsgi.ini
进入uwsgi.ini文件目录中:
uwsgi --ini uwsgi.ini
可能会出现,nginx静态资源文件没法访问,403 forbidden错误
解决办法:
在nginx.conf配置文件头部加user root:
user root;
worker_processes 8;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
连接:https://www.jianshu.com/p/c060448b3e78来源:简书