更新系统软件源

  sudo apt-get update

pip3安装

  sudo apt install python3-pip

安装virtualenvwrapper

  pip3 install virtualenvwrapper

修改.bashrc,最后面添加以下代码:

  export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

  source /usr/local/bin/virtualenvwrapper.sh

重新加载配置

  source ~/.bashrc

 

创建虚拟环境

  mkvirtualenv 虚拟环境名

进入虚拟环境

  workon 虚拟环境名

退出虚拟环境

  deactivate

 

安装mysql

  sudo apt-get install mysql-server

 

安装mysql驱动
  sudo apt-get install libmysqlclient-dev

 

设置mysql允许远程访问,方便使用navicat导入数据.首先编辑文件/etc/mysql/mysql.conf.d/mysqld.cnf

  sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

  注释掉bind-address = 127.0.0.1: #允许远程连接

 

进入mysql,修改root密码

  mysql>set password for root@localhost = password('123');

 

创建普通用户

  create user 'username'@'%' IDENTIFIED BY 'password';

 

给普通用户赋权

  grant all on *.* to username@'%';

 

刷新

  flush privileges;

 

退出

  exit

 

重启mysql

  service mysql restart

 

安装redis

  sudo apt-get install redis-server

 

修改redis配置

  使用redis的访问账号

  sudo vi /etc/redis/redis.conf

  #取消注释requirepass

  requirepass 密码

 

允许远程访问

  #注释bind

  # bind 127.0.0.1

重启redis

  sudo /etc/init.d/redis-server restart

 

桌面创建新目录Project

  mkdir Project

 

在项目中创建项目依赖包文件

  pip freeze > package.txt

 

上传项目到Project,或者进入Project使用git克隆

  scp -r 本地项目目录  root@服务器IP:/root/Project

  git clone 项目地址

 

安装依赖包

  pip install -r package.txt

 

进入项目修改settings文件

  将mysql账号密码修改成服务器的

  修改ALLOWED_HOSTS = ['*']

 

# 测试之前先将项目用到数据导入数据库,不然肯定报错

测试能否正常运行,然后浏览器访问服务器地址

  python3 manage.py runserver 0.0.0.0:80

 

安装uwsgi

  sudo pip3 install uwsgi

 

在manage.py同级目录下创建uwsgi.ini文件

  vim uwsgi.ini

 

编辑内容如下

[uwsgi]
#如果单独使用uwsgi来部署Django项目时,就用这一行。
http=0.0.0.0:80
#如果使用nginx+uwsgi来部署Django项目时,就用这行。
# socket=127.0.0.1:8080 # 和nginx连接的端口
#你项目的完整路径。
chdir=/root/Project/MyProject
#给socket文件赋权限,这里不用管。
# chmod-socket=664
#启用主线程。
master=true
processes=4
threads=2
#指定日志文件(会自动创建)。这个很重要,如果uwsgi出现错误,可以通过日志文件来查错。
logto=uwsgi.log
#指定进程号文件(会自动创建)。这个也很重要,如果要重启和关闭uwsgi,则需要这个文件,里面记录了进程号。
pidfile=uwsgi.pid
#指定wsgi文件。在与settings.py同级目录中会有一个wsgi.py文件。
module=MyProject.wsgi:application

保存退出后启动uwsgi,如果报错请查看日志文件

  uwsgi --ini uwsgi.ini 

安装nginx

  sudo apt-get nginx

进入/etc/nginx/备份nginx.conf

  sudo cp nginx.conf nginx.conf.bak

删除nginx.conf,重新创建nginx.conf,内容如下:

  

events {
    worker_connections  1024;   # 不用管
}

http{
server {
        listen 80;   #这个端口用来监听浏览器的请求。
        server_name 0.0.0.0;  # 不用管,如果有域名可以填上域名。
        charset UTF-8;
        #日志文件。如果nginx出现问题,都可以通过日志文件来查错。
        access_log /var/log/nginx/MyProject_access.log;
        error_log /var/log/nginx/MyProject_error.log;
        client_max_body_size 75M;

        location / {
            include uwsgi_params;    # 使用uwsgi服务器。
            uwsgi_pass 127.0.0.1:8080;    # 把浏览器发来的请求转发到8001端口,而uwsgi也正在监听8001端口,所以就实现了nginx与uwsgi的通信。
            uwsgi_read_timeout 30;   #链接超时时间
        }
        location /static/{    # 处理静态文件,处理链接是以/static/开头的请求。
            alias /usr/DjangoProject/MyProject/static/;       # 项目静态文件的绝对路径。
       }
   }
}
最后

修改uwsgi.ini文件,把http=0.0.0.0:80注释掉,使用socket=127.0.0.1:8080

输入:uwsgi -d --ini uwsgi.ini    # 启动uwsgi服务器。-d表示在后台运行。这样就不会占用当前窗口了。

输入:/etc/init.d/nginx start     # 启动nginx

浏览器访问

 

 

 

 

 

 

 

  

  

 

 

 

  

 

 

 

												

ubuntu18+uwsgi+nginx部署django项目的更多相关文章

  1. 使用uWSGI+nginx部署Django项目

    最近使用django写了一些项目,不过部署到服务器上碰到一些问题,还有静态文件什么的一堆问题,这里总结一下碰到的问题和解决方案,总体思路是按照官方文档走的. 原文地址:http://uwsgi-doc ...

  2. uwsgi+nginx部署django项目

    1. 概念解析(wsgi协议,uwsgi协议,uWSGI) 参考:https://www.cnblogs.com/wspblog/p/8575101.html 1.1 现实世界的web请求: 1.2  ...

  3. Ubuntu+Django+uWSGI+Nginx部署Django项目

    安装uWSGI,pip依据自己要使用的python版本自行选择,python2.x版本使用pip进行安装,python3.x版本使用pip3进行安装 pip install uwsgi 配置uWSGI ...

  4. 基于腾讯云CentOS7.4+MySQL5.7+Python3+uwsgi+nginx的Django项目部署

    准备知识 1.django一个基于python的开源web框架,请确保自己熟悉它的框架目录结构. 2.uWSGI一个基于自有的uwsgi协议.wsgi协议和http服务协议的web网关 3.nginx ...

  5. uwsgi+anaconda+nginx部署django项目(ubuntu下)

    conda 环境不必多说: conda(或source)  activate  test 进入test虚拟环境 接下来安装uwsgi: pip install uwsgi 在conda环境下大概率安装 ...

  6. vue+uwsgi+nginx部署luffty项目

    在部署项目之前本人已经将前端代码和后端代码发布在了一个网站上,大家可自行下载,当然如果有Xftp工具也可以直接从本地导入. django代码 https://files.cnblogs.com/fil ...

  7. uwsgi + nginx 部署python项目(一)

    uWSGI uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换. 要注意 WSGI / uws ...

  8. 阿里云轻量级服务器和NGINX部署Django项目

    部署条件: 1.一台阿里云服务器(本人的是CentOS系统的服务器) 2.已经构建好的项目 3.服务器上安装并配置Nginx 首先第一步:在服务器上安装并配置Nginx 进入服务器 $ ssh roo ...

  9. uwsgi + nginx 部署python项目(二)

    实现负载均衡 开启两个服务器,nginx负责分发请求到两个服务器,以减轻单个服务器负担. 配置uwsgi服务器 在a项目目录下生成uwsgi.ini文件,在b项目目录下生成uwsgi.ini文件,如何 ...

随机推荐

  1. [Luogu1291][SHOI2002]百事世界杯之旅

    题目描述 “……在2002年6月之前购买的百事任何饮料的瓶盖上都会有一个百事球星的名字.只要凑齐所有百事球星的名字,就可参加百事世界杯之旅的抽奖活动,获得球星背包,随声听,更克赴日韩观看世界杯.还不赶 ...

  2. 使用mongoose-paginate-v2查询缓慢问题

    场景 mongoose-paginate-v2 是一个mongoose上的分页插件,我也用过很多次了,但是最近在创建项目遇到了问题. 老代码中不使用分页插件进行查询,然后自己使用中间件进行分页 old ...

  3. 开源造轮子:一个简洁,高效,轻量级,酷炫的不要不要的canvas粒子运动插件库

    一:开篇 哈哈哈,感谢标题党的莅临~ 虽然标题有点夸张的感觉,但实际上,插件库确实是简洁,高效,轻量级,酷炫酷炫的咯.废话不多说,先来看个标配例子吧: (codepen在线演示编辑:http://co ...

  4. vue系列---snabbdom.js使用及源码分析(九)

    一:什么是snabbdom? 在学习Vue或React中,我们了解最多的就是虚拟DOM,虚拟DOM可以看作是一颗模拟了DOM的Javascript树,主要是通过vnode实现一个无状态的组件,当组件状 ...

  5. Hibernate 查询方式、JPA查询方式

    hibernate 查询方式: OID 查询 对象导航查询 HQL 方式查询 QBC方式查询 原生SQL方式查询 JPA 查询方式: OID 查询 对象导航查询 JPQL 方式查询 CriteriaB ...

  6. Mongoose 基本用法

    1. SchemaTypes数据类型 数据类型 描述 String 字符串 Number 数字 Date 日期 Boolean 布尔值 Mixed 混合 Objectid 对象ID Array 数组 ...

  7. 使用linq实现回调函数

    通过输入的Id找到parentId是该Id的列表,然后找到parentId是上面那个Id的列表,以此类推,找到第一目录下所有子目录的的列表. 通过传入第一目录的Id,得到该目录下的所有子目录. 通过回 ...

  8. 前端上传图片 base64转二进制上传

    var dataURItoBlob = function (dataURI) { var byteString = atob(dataURI.split(',')[1]); var mimeStrin ...

  9. springboot(3)——配置文件和自动配置原理详细讲解

    原文地址 目录 概述 1. 配置文件作用 2.配置文件位置 3.配置文件的定义 3.1如果是定义普通变量(数字 字符串 布尔) 3.2如果是定义对象.Map 3.3如果是定义数组 4.配置文件的使用 ...

  10. Java编程思想——第14章 类型信息(一)

    运行时类型信息使得你可以在程序运行时发现和使用类型信息.Java是如何让我们在运行时识别对象和类的信息得呢? 主要有两种方式:1.传统RTTI,他假定我们在编译期间已经知道了所有类型:2.反射,它允许 ...