前言

完善的django项目上线,有很多种上线的方法,比如apache, uwsgi, nginx等。这里只介绍2种,一种是django自带的,另外一种则是nginx + uwsgi完成介绍。这里的系统环境采用的是ubantu系统, python环境采用的是python3, django环境采用1.11

一、自带的部署功能

数据库迁移:

如果django项目中的数据是在本地的mysql中,需要将它的数据迁移到远程连接的数据库中。使用navicat操作, 在工具下拉列表中有一个数据传输按钮

 
image.png

进入后,配置好,点击下一步就好

 
image.png

1. 环境配置

  • 更新安装包: sudo apt update
  • 下载mysql : apt install mysql-server mysql-client

2. 设置远程访问mysql:

(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

 
QQ图片20180512085640.png

(3)设置mysql数据库的用户密码

设置: GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

刷新操作:flush privileges;

3. 修改django中的配置文件

  • 修改settings.py

    (1) 设置DEBUG=FALSE, ALLOWED_HOST = ['']

     
    image.png




    如果上线的时候出现500,502错误等,可以将DEBUG=False设置为DEBUG=True,这时候你就可以在浏览器中看到具体的错误,然后进行调试

    (2)

    静态文件的STARC的路径配置

    STATIC_ROOT = os.path.join(BASE_DIR, 'static')

    ![image.png](https://upload-images.jianshu.io/upload_images/10914545-f44323417d3ce602.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240

    (3)修改工程urls.py配置

    导入serve包:

    from django.views.static import serve

    在路由中加入static的路由地址:

    url(r'^static/(?P<path>.
    )$', serve, {"document_root": settings.STATIC_ROOT})

     
    image.png

4.修改首页的访问地址

在工程urls.py里部署首页访问的地址: views.home是自己设置的一个方法,是路由指向的地址

url(r'^$', views.home)

5. 安装pip3, 使用pip3来安装必备的数据库

安装pip3 :up主在这里遇到过一个bug,安装不上库文件,这时候你需要将pip3更新到最新的版本

apt install python3-pip

安装必备库:

pip3 install django

pip3 install pymysql

pip3 install pillow

6. 查看进程:

看看端口啥的, 如果80端口被占用了,下面可以更换到其他端口,也可以直接kill -9 掉占用端口的程序

netstat -lntp

7. 启动项目

进入manage.py文件目录下:

python3 manage.py runserver 0.0.0.0:8000

二、使用nginx+uwsgi部署

1.nagin和uwsgi介绍

关于nginx和uwsgi与django的联系,有一篇博文讲得简单明了

https://blog.csdn.net/u014761344/article/details/40146597

(1)nginx:

nginx概念:

Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

nginx应用场景:

1、 http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

2、 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

基于端口的,不同的端口

基于域名的,不同域名

3、 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

(2)uwsgi

uwsgi概念:

uWSGI实现了WSGI的所有接口,是一个快速、自我修复、开发人员和系统管理员友好的服务器

2.安装nginx

nginx启动后,可以在公网的ip地址上看到welcome to nginx

sudo apt-get install nginx

3.查看nginx的状态

systemctl status nginx 查看nginx的状态

system start/stop/enable/disable nginx 启动/关闭/设置开机启动/禁止开机启动

service nginx status/stop/restart/start 查看状态/停止/重启/开启 ngnix

安装完成后,如果不能启动nginx,可以使用 ps -ef | grep nginx 查看进程,杀掉全部的nginx进程,再重新启动nginx

4.安装uwsgi

pip install uwsgi

5.在nginx的配置文件中加载自定义的nginx的配置文件

up主这里使用自己的.conf文件放在 /home/app/conf/的,这里建议大家建立一个统一的文件夹来管理conf文件

进入nginx的配置文件:

vim /etc/nginx/nginx.conf

修改文件:增加 include /home/app/conf/
.conf;

 
QQ图片20180512095927.png

6. 配置自定的nginx文件:

up主建议每一个项目都单独建立一个conf文件

找到自己创建的conf文件:

vim /home/app/conf/axfnginx.conf

配置:

server {

listen 80;

server_name 47.92.164.198 localhost;

    access_log /home/app/log/access.log;
    error_log /home/app/log/error.log;

    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8890;
    }
    location /static/ {
        alias /home/app/day11axf0/static/;
        expires 30d;
    }

}
 
image.png

7.配置uwsgi

up主是将uwsgi.ini文件与conf文件放在一起的

pythonpath为工程文件目录

scoket要与nginx中的完全相同

logto为保存日志文件的地方

 
image.png

nginx和uwsgi还可以配置更多的东西,这里配置的都是最简单需要的内容

8.启动项目

进入uwsgi.ini文件目录中:

uwsgi --ini uwsgi.ini

9.部署完成

python学习交流群:125240963

转载至:https://www.jianshu.com/p/c060448b3e78?

django项目部署上线的更多相关文章

  1. django项目部署上线 nginx + uwsgi

    一.安装python3 安装步骤:https://www.cnblogs.com/zhangqigao/p/11661875.html 二.修改django中的配置文件 修改settings.py ( ...

  2. Windows下django项目部署 通过Apache2.4+mod_wsgi

    经过几天踩坑,记录在Windows10下通过Apache2.4部署Django项目的过程 运行环境: 先说下环境,怎么安装倒是其次的,版本很重要,我是根据mod_wsgi的版本要求下载的各个版本(py ...

  3. Django项目部署在Linux下以进程方式启动

    Django项目部署在Linux下以进程方式启动 这是一篇关于如何在linux下,以后台进程的方式运行服务,命令改改基本上就通用了. 开发完Django项目后,需要把项目部署到linux环境下.当然, ...

  4. 使用gunicorn将django项目部署到生产环境的子目录下,在nginx后端获取客户真实IP地址

    生产环境有时,并不是为了一个项目而存在的.毕竟,域名是比较稀有的. 今天遇到这个问题,解决了.作个记录. 并且,如果将django项目部署在Nginx后面,那如何获取用户真实的IP地址呢? 下面就来解 ...

  5. Django项目部署(django+guncorn+virtualenv+nginx)

    一.说明 为了django项目部署到生产环境上,能够稳定的运行,且能够同时指出http和https的访问,对django的部署进行了一些研究,决定采用django + gunicorn + virtu ...

  6. django项目部署过程

    django项目部署过程 1.上传代码 用git或者其他工具,如scp 代码上传后保证每个应用下的migrations文件夹里只有一个__init__.py文件,自己的迁移文件不要上传上来,具体的gi ...

  7. Linux学习笔记之Django项目部署(CentOS)----进阶篇

    一.引入 当我们开发好了一个Django项目之后是需要部署到服务器上的,这样才能正式使用这个项目.之前用了一个运行.sh文件的方法让项目得以在后台运行,其实随着学习的深入,这种方法其实是有点low的, ...

  8. Django项目部署到阿里云服务器无法发送邮件,发送邮件超时问题解决

    前言 今天, 博主将写了好久的一个Django小项目尝试在阿里云部署上线,由于项目中需要发送邮件,博主调用了163邮箱接口,在本地测试邮件功能正常,可是上线后,邮件功能一直超时崩溃.在百度一番查资料后 ...

  9. 学习VirtualEnv和Nginx+uwsgi用于django项目部署

    以下叙述中用到的操作系统:Linux CentOS 6.X. 最近几天了解一下VirtualEnv,Apache+Daemon mode,Nginx+uwsgi的概念,并且在项目中实验性部署了一下(目 ...

随机推荐

  1. 朴素贝叶斯分类法 Naive Bayes ---R

    朴素贝叶斯算法 [转载时请注明来源]:http://www.cnblogs.com/runner-ljt/ Ljt   勿忘初心  无畏未来 作为一个初学者,水平有限,欢迎交流指正. 朴素贝叶斯分类法 ...

  2. 网站开发进阶(二十八)初探localStorage

    初探localStorage       注: localStorage经典项目应用案例 HTML5中提供了localStorage对象可以将数据长期保存在客户端,直到人为清除. localStora ...

  3. 采用JSP+JavaBean的方式进行简单的实现用户的网页登陆实例

    我们都知道J2EE中的Model1开发模式,那么下面就让我们一起简单的进行一下回顾,其主要是体现了一个初步的分层的思想: jsp层,业务逻辑层,以及我们的数据库层,主要的作用分别为,jsp层负责与用户 ...

  4. UVa - 116 - Unidirectional TSP

    Background Problems that require minimum paths through some domain appear in many different areas of ...

  5. Ext JS 5初探(三)

    在上文提到了本地化文件的问题,然后在Ext JS 5的包里找了找,居然还没包含本地化包.我估计目前还不到考虑本地化的时候.在Sencha Touch中,是没有本地化包的,但是要让Ext JS也不包含本 ...

  6. Dynamics CRM 2011/2013 DeveloperToolkit的使用

    Dynamic CRM 2011的SDK中提供了一个叫DeveloperToolkit的工具,他的用途官方说明说的很明确,能方便开发者在VS中直接部署webresource.plugin.workfl ...

  7. android 之ViewStub

    在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局.那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在 ...

  8. SharePoint2010搜索的简单设置

    1.  开启搜索服务,管理中心 – 应用程序管理 – 服务应用程序 – 管理服务器上的服务 2.  点击进去,启动"SharePoint Foundation搜索"."S ...

  9. 如何oracle调试存储过程

    1.打开PL/SQL Developer 如果在机器上安装了PL/SQL Developer的话,打开PL/SQL Developer界面 输入用户名,密码和host名字,这个跟在程序中web.con ...

  10. sql语句——根据身份证号判断男女

    根据身份证判断男女的规则:二代身份证为18位,判断倒数第二位,第二位若为奇数,性别为男:偶数则为女 一代身份证为15为,判断倒数第一位,规则同上. update 表名 set 表名.字段名= case ...