更新系统软件源

  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. [Luogu2824] [HEOI2016/TJOI2016]排序

    题目描述 在2016年,佳媛姐姐喜欢上了数字序列.因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题,需要你来帮助他.这个难题是这样子的:给出一个1到n的全排列,现在对这个全排列序列进行 ...

  2. B/S 端基于 HTML5 + WebGL 的 VR 3D 机房数据中心可视化

    前言 在 3D 机房数据中心可视化应用中,随着视频监控联网系统的不断普及和发展, 网络摄像机更多的应用于监控系统中,尤其是高清时代的来临,更加快了网络摄像机的发展和应用. 在监控摄像机数量的不断庞大的 ...

  3. php和apache的关系是什么?

    例如我们在自己的电脑里练习如何做网站的时候,我们需要搭建一个本地环境,这个本地环境就是PHP+APACHE + MYSQL的环境,这样就可以让我们的电脑拥有PHP要求的运行环境了.那么php和apac ...

  4. xpath相关用法及技巧

    本节讲解网页解析神器----XPath lxml下载 xpath基本用法 xpath插件 Xpath及XML路径语言,它是一门在XML文档查找信息的语言. 一:lxml下载以及安装 首先需要解决lxm ...

  5. Arduino学习笔记⑤ 模拟IO实验

    1.前言     还记得前几个我们都是在讲解数字IO,而其实我们生活中大多数信号都是模拟信号,如声音以及温度变化.在Arduino中,常用0~5v的电压来表示模拟信号. 1.1 模拟输入功能      ...

  6. SQL手工注入方法

    SQL手工注入漏洞测试(MySQL数据库) 的靶场练习   流程与方法 注意:加粗部分给重点 查询数据库名http://219.153.49.228:46939/new_list.php?id=22 ...

  7. Java基础(八)对象包装器与自动装箱

    1.对象包装器 有时候,需要将int这样的基本类型转换为对象.所有的基本类型都有一个与之对应的类.通常,这些类被称为包装器(wrapper). 这些对象包装类分别是:Integer.Long.Floa ...

  8. Md5与HMAC-SHA256

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

  9. js更高文档的样式

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. todoList.html

    待做的事情 {{item}} 完成 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...