1.更新ubantu的apt

apt-get update

必要时候更新系统:      apt-get upgrade

2.远程连接服务器

  ssh 用户名@ip

  上传代码 :        scp 本地文件夹/文件   用户名@ip:远程存放位置

3.安装数据库

   apt-get install mysql-server mysql-client libmysqlclient-dev

(ps:如果不安装libmysqlclent-dev,接下来安装mysql-python可能会报错)

安装完成以后通过 mysql -u用户名 -p密码    进入mysql,创建对应的数据库。

4.安装redis     

  apt-get install redis-server

  确认redis是否运行    netstat -antup  / netstat -ntpl  / ps -ef|gerp redis

5.安装python环境

  a.安装pip:  apt-get install python-pip

  b.安装python-dev:  apt-get install python-dev

  c.安装项目环境:   pip install -r 环境文件

(ps 如果要加快速度需要换镜像元:  pip install -r 环境文件 -i https://pypi.tuna.tsinghua.edu.cn/simple gevent)

6.创建数据库对应的表:

  a.一般情况下:Python manage.py makemigrations          puyhon manage.py migrate

  b.本项目: python manage.py migrate auth

   因为 kombu 的两个应用 kombu_transport_django 和 djkombu 会产生数据表冲 突,所以我们需要先运行

   python manage.py migrate kombu_transport_django --fask-intial

   python manage.py migrate djkombu --fake-initial

     同步数据库:   Python manage.py migrate

7.安装uWSGI:  

  pip install uwsgi

  a.在项目同级目录下创建conf文件夹,进入conf里创建uwsgi.ini文件配置环境

  

 1 [uwsgi]
2 socket = 127.0.0.1:3031
3 #使用nginx连接时使用,Django程序所在服务器地址
4 chdir = /home/mmc/mmcsite
5 #项目目录
6 wsgi-file = mmcsite/wsgi.py
7 #项目中wsgi.py文件的目录,相对于项目目录
8 processes = 4
9 #进程数
10 threads = 2
11 #线程数
12 stats = 127.0.0.1:9191
13 #在指定的地址上,开启状态服务

项目配置1

 1 [uwsgi]
2 #使用nginx连接时使用,Django程序所在服务器地址
3 socket=10.211.55.2:8001
4 #直接做web服务器使用,Django程序所在服务器地址
5 #http=10.211.55.2:8001
6 #项目目录
7 chdir=/Users/delron/Desktop/mmc/iot
8 #项目中wsgi.py文件的目录,相对于项目目录
9 wsgi-file=mmcsite/wsgi.py
10 # 进程数
11 processes=4
12 # 线程数
13 threads=2
14 # uwsgi服务器的角色
15 master=True
16 # 存放进程编号的文件
17 pidfile=uwsgi.pid
18 # 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。我们以前的runserver是依赖终端的
19 daemonize=uwsgi.log
20 # 指定依赖的虚拟环境
21 virtualenv=/Users/delron/.virtualenv/meiduo

项目配置2

 1 [uwsgi]
2 # 项目目录
3 chdir=/aaa/opwf_dir/opwf/
4 # 启动uwsgi的用户名和用户组
5 uid=root
6 gid=root
7 # 指定项目的application
8 module=opwf.wsgi:application
9 # 指定sock的文件路径
10 socket=/aaa/opwf_dir/script/uwsgi.sock
11 # 启用主进程
12 master=true
13 # 进程个数
14 workers=5
15 pidfile=/aaa/opwf_dir/script/uwsgi.pid
16 # 自动移除unix Socket和pid文件当服务停止的时候
17 vacuum=true
18 # 序列化接受的内容,如果可能的话
19 thunder-lock=true
20 # 启用线程
21 enable-threads=true
22 # 设置自中断时间
23 harakiri=30
24 # 设置缓冲
25 post-buffering=4096
26 # 设置日志目录
27 daemonize=/aaa/opwf_dir/script/uwsgi.log

项目配置3

  b.uwsgi命令:

    启动uwsgi     uwsgi --ini uwsgi.ini  

    重启uwsgi    service uwsgi restart

    查看uwsgi是否启动成功    ps -ef|grep uwsgi

    关闭uwsgi    uwsgi --stop  uwsgi.pid(2和3配置可生成uwsgi.pid文件用来关闭uwsgi)

8.安装Nginx:

  apt-get install nginx

  nginx.conf为nginx会检查的配置文件路径。你的监听端口可以写在这些文件的下面。sites-enabled里可以配置文件。

  a.在/etc/nginx/conf.d里新建文件 项目名.conf(myproject.conf)配置nginx。

 1 server {
2 listen 80; #监听的端口号
3 server_name 127.0.0.1; #服务器ip或者域名
4 location / {
5 #alias /home/mmc/mmcsite/web/;
6 root /home/mmc/mmcsite/web/; #静态文件地址路径
7 index index.html; #文件格式
8 }
9 #uwsgi配置
10 location ^~ /iot/ {
11 include uwsgi_params;
12 uwsgi_pass 127.0.0.1:3031;
13 }
14 #uwsgi_params文件是Nginx向uWSGI传递的参数,uwsgi_pass的意思动态内容请求都通过名为django的upstream传递给uWSGI,这使用文件socket的方式,那么与之前uwsgi.ini里的socket参数配置一致。
15 error_page 404 /404.html;
16 location = /40x.html {
17 }
18 error_page 500 502 503 504 /50x.html;
19 location = /50x.html {
20 } }

项目配置1

 1 upstream meiduo {
2 server 100.211.55.2:8001; # 此处为uwsgi运行的ip地址和端口号
3 # 如果有多台服务器,可以在此处继续添加服务器地址
4 }
5
6 #gzip on;
7 server {
8 listen 8000;
9 server_name api.meiduo.site;
10
11 location / {
12 include uwsgi_params;
13 uwsgi_pass meiduo;
14 }
15
16 }
17
18
19 server {
20 listen 80;
21 server_name www.meiduo.site;
22
23 #charset koi8-r;
24
25 #access_log logs/host.access.log main;
26 location /xadmin {
27 include uwsgi_params;
28 uwsgi_pass meiduo;
29 }
30
31 location /ckeditor {
32 include uwsgi_params;
33 uwsgi_pass meiduo;
34 }
35
36 location / {
37 root /home/python/Desktop/front_end_pc;
38 index index.html index.htm;
39 }
40
41
42 error_page 500 502 503 504 /50x.html;
43 location = /50x.html {
44 root html;
45 }
46
47 }

项目配置2

 1 server {
2 listen 80;
3 server_name 1.1.1.3;
4 access_log /var/log/nginx/access.log main;
5 charset utf-8;
6 gzip on;
7 gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream;
8
9 error_page 404 /404.html;
10 error_page 500 502 503 504 /50x.html;
11 # 指定项目路径uwsgi
12 location / {
13 include uwsgi_params;
14 uwsgi_connect_timeout 30;
15 uwsgi_pass unix:/aaa/opwf_dir/script/uwsgi.sock;
16 }
17 # 指定静态文件路径
18 location /static/ {
19 alias /aaa/opwf_dir/opwf/static_all/;
20 index index.html index.htm;
21 }
22
23 }

项目配置3

  b.nginx命令

    检查nginx配置是否正确    nginx -t

    启动nginx    service nginx start

    关闭nginx    service nginx stop

    重启nginx    service nginx restart

    查看nginx是否启动    ps -ef|grep nginx

9.注意事项:

  a.如果使用Django自带的admin,需要收集admin的静态文件(先于配置nginx执行)

    STATIC_ROOT = os.path.jpin(os.path.dirname(os,path.dirname(BASE_DIR)), 'font_end_pc/static')

    (ps. font_end_pc/static为静态文件的路径)

    python manage.py collectstatic

  b.Django中的配置。

    修改uwsgi.py里的配置,将开发模式下的setting换位生产环境下的setting。

    os.environ.setdefault('DJANGO_SETTING_MODULE', 'myproject.settings.prod')

    setting里需要注意的项

 1 DEBUG = True      #生产环境下debug必须为False
2
3 ALLOWED_HOSTS = [..., 'www.baidu.site'] # 添加访问的域名或者ip
4
5 CORS_ORIGIN_WHITELIST = (
6 '127.0.0.1:8080',
7 'localhost:8080',
8 'www.baidu.site:8080',
9 'api.baidu.site:8000',
10 'www.baidu.site', #设置跨域白名单
11 )

setting

 

 

  

p.p1 { margin: 0; text-align: justify; text-indent: 21px; font: 10.5px Helvetica }
span.s1 { font: 10.5px "PingFang SC" }

ubantu+nginx+uwsgi+django部署的更多相关文章

  1. Nginx+uWSGI+Django部署web服务器

    目录 Nginx+uWSGI+Django部署web服务器 环境说明 前言 搭建项目 Django部署 编辑luffy/luffy/settings.py 编辑luffy/app01/views.py ...

  2. nginx+uwsgi+django 部署原理

    python开发群里经常有同学问 nginx+uwsgi+django 着了教程部署,但是不知道他们之间怎么样的关系,于是我就google到了一个让我看起来很认同的图,大家看了也比较认同,于是就分享出 ...

  3. nginx+uwsgi+django部署流程

    当我们在用django开发的web项目时,开发测试过程中用到的是django自带的测试服务器,由于其安全及稳定等性能方面的局限性,django官方并不建议将测试服务器用在实际生产. nginx+uws ...

  4. ubuntu16.4+nginx+uwsgi+Django 部署上线

    Nginx概述 Nginx是一款轻量级的HTTP服务器,采用事件驱动和异步非阻塞处理方式框架,这让其具有极好的IO性能,市场用于服务端的反向代理和负载均衡 Nginx优点 高并发连接:官方测试Ngin ...

  5. 10、nginx+uwsgi+django部署(动静分离)

    10.1.说明: 1.介绍: 创建Django项目,可以通过 pyhon3 manage.py runserver 0.0.0.0:8080 & 命令更方便地调试程序,但是如果当一个项目完成了 ...

  6. 在ubuntu16上进行nginx+uwsgi+django部署的简要步骤

    网上有很多部署教程,说了一大堆,遇到坑还是要自己一个个解决,这里有几个比较重要的坑大家一定要注意. 1.首先要安装python和python-dev环境,如果没有安装python-dev后面安装有些依 ...

  7. Ubuntu-18.04.2系统 Nginx+uWSGI+Django 部署生产环境

    首先准备环境: 1.使用虚拟机 VMware Workstation Pro (也可以不用),安装Ubuntu-18.04.2系统 开始搭建环境 (因为ubuntu18.4.2集成了python3.6 ...

  8. 使用docker-compose+nginx+uwsgi+django部署项目

    (1)centos上下载docker + docker-compose (2)基础目录 (3)首先创建一个纯净的python+django+uwsgi的镜像,便于后期使用(也可不用创建,后期docke ...

  9. Nginx+uwsgi+django部署项目

    nginx把请求转发给uwsgi,然后把uwsgi处理得到的结果返回给浏览器. 安装nginx: yum -y install gcc pcre-devel openssl-devel #安装Ngin ...

随机推荐

  1. 线上Java程序占用 CPU 过高,请说一下排查方法?

    我是风筝,公众号「古时的风筝」,一个兼具深度与广度的程序员鼓励师,一个本打算写诗却写起了代码的田园码农! 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在 ...

  2. ACM已刷题

    ZOJ: 1001.1002.1003.1004.1005.1006.1037.1045.1048.1049.1067.1087.1091.1016. swjtuoj: 2433 注:没链接的应该是最 ...

  3. uniapp使用axios以及封装错误重试解决方案

    在uniapp中,使用axios进行请求时,uniapp无法使用axios的适配器,需要基于uni.request来定义适配器. 安装完成axios后在项目utils目录下建一个axios文件夹 文中 ...

  4. SVG--D3--血缘关系树

    最近的工作与可视化有关,有展示血缘关系树的需求 ,类似于这样: 碰巧搜到 D3(用于可视化的js库,作者吕之华),瞬间无法自拔,它的树状图功能基于SVG.js ,暴露的可操作入口也简洁恰当,能帮助你快 ...

  5. linux下的终端利器----tmux

    转:tmux 是指通过一个终端登录远程主机并运行后,在其中可以开启多个控制台的终端复用软件.类似GNU Screen,但来自于OpenBSD,采用BSD授权.使用它最直观的好处就是,通过一个终端登录远 ...

  6. C++变量的存储类型

    C++变量和函数包括两个属性:数据类型和数据的存储类型.存储类型是指数据在内存中存储的方式.变量的存储类型分为四种:自动类型(auto),寄存器类型(register).静态类型(static)外部类 ...

  7. Spring Cloud杜绝循环依赖

    前言 大家在开发中有没有遇到过因循环依赖导致项目启动失败?在排查循环依赖的过程中有没困难?如何避免写出循环依赖的代码? 我没写过循环依赖的代码,作为稳定性负责人,我排查过多次. 有些逻辑简单的代码,循 ...

  8. 学习笔记——ESP8266项目的例子编译时发生cannot find -lstdc++问题的解决

    在尝试对进行ESP8266项目的例子进行编译时发生cannot find -lstdc++问题 第一想法是安装libstdc++,结果安装时又发生了下面的情况: 再次查找原因,最后发现当前安装的交叉编 ...

  9. .NET 5 带来的新特性 [MemberNotNull] 与 [MemberNotNullWhen]

    MemberNotNullAttribute是 .NET 5 的新增特性,位于System.Diagnostics.CodeAnalysis.该特性用于显式声明,调用此方法后该值不再为 Null.示例 ...

  10. matlab 向量操作作业

    写出下列语句的计算结果及作用 clear    清除所有变量 clc    清屏 A = [2 5 7 1 3 4];    创建行向量并赋值 odds = 1:2:length(A);    冒号操 ...