更新系统软件源

  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. pytest6-Fixture finalization / executing teardown code(使用yield来实现)

    Fixture finalization / executing teardown code By using a yield statement instead of return, all the ...

  2. 玩转u8g2 OLED库,一篇就够(分篇)

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  3. echarts画中国地图,省市区地图分享

    中国地图 四川地图 重庆地图 源码分享: https://github.com/livelyPeng/ec-map

  4. 关于举办【福州】《K8S社区线下技术交流会》的问卷调查

      近年来,容器.Kubernetes.DevOps.微服务.Serverless等一系列云原生技术受到越来越多的关注,云原生为企业数字化转型提供了创新源动力,基于云原生技术构建企业技术中台在各行业也 ...

  5. [.Net Core 3.0从入门到精通]1.笔记简介及.Net Core3.0介绍

    文章目的:.Net Core 3.0学习笔记整理与分享. 面向人群:有一定基础的C#开发人员或学习人员(C#语法一定要掌握). 笔者水平:中级C#开发攻城狮(水平有限,写的不对的地方希望大家指正). ...

  6. 用Wireshark抓包分析请求

    前言 有些封装好的API把错误都屏蔽掉,直接返回某一个不明确的具体错误,让人感到困惑. //code in SDK read-only public static Data requestHandle ...

  7. LNMP与LAMP的工作原理

    LAMP的实现原理 LAMP=Linux+Apache+Mysql+PHP.​#工作原理:浏览器向服务器发送http请求,服务器 (Apache) 接受请求,由于php作为Apache的组件模块也会一 ...

  8. Md5与HMAC-SHA256

    Md5签名算法 private string CalMd5(string str) { var md5 = MD5.Create(); var bs = md5.ComputeHash(Encodin ...

  9. 【Java必修课】通过Value获取Map中的键值Key的四种方法

    1 简介 我们都知道Map是存放键值对<Key,Value>的容器,知道了Key值,使用方法Map.get(key)能快速获取Value值.然而,有的时候我们需要反过来获取,知道Value ...

  10. mixin 扩展类的装饰

    1,步骤: 1,自定义装饰器 # 我们自定义的装饰器: def my_decorator_1(func): def wrapper(request, *args, **kwargs): print(' ...