精华内容
下载资源
问答
  • nginx+uwsgi+django是我们常用的django部署方式。这篇文章主要介绍了nginx+uwsgi启动Django项目的详细步骤,非常具有实用价值,需要的朋友可以参考下
  • 配置uwsgi启动Django项目 [uwsgi] # 项目目录 chdir=/webapps/assistance # 指定项目的application module=assistance.wsgi:application # 进程个数 workers=250 listen=1024 pidfile=/xxx/assistance/uconf/uwsgi_...

    配置uwsgi启动Django项目

    [uwsgi]
    # 项目目录
    chdir=/webapps/assistance
    # 指定项目的application
    module=assistance.wsgi:application
    # 进程个数
    workers=250
    listen=1024
    pidfile=/xxx/assistance/uconf/uwsgi_xarh.pid	# uwsgi.pid路径
    # 指定IP端口
    http=0.0.0.0:8001
    # 启动uwsgi的用户名和用户组
    uid=root
    gid=root
    # 启用主进程
    master=true
    # 自动移除unix Socket和pid文件当服务停止的时候
    vacuum=true
    # 序列化接受的内容,如果可能的话
    thunder-lock=true
    # 启用线程
    enable-threads=true
    # 设置自中断时间
    harakiri=30
    # 设置缓冲
    post-buffering=4096
    # 设置日志目录
    daemonize=/xxx/assistance/uconf/uwsgi_xarh.log
    touch-reload =/xxx/assistance/uconf/reload
    
    
    

    启动命令 uwsgi – ini uwsgi.ini

    查看日志 tail -f uwsgi.log

    服务器后台启动dajngo项目

    nohup python manage.py runserver 0.0.0.0:8000 &
    

    杀死进程

    fuser -k -n tcp 8000
    

    服务器进入python虚拟环境和退出虚拟环境

    进入 source env/bin/activate
    退出 deactivate
    
    展开全文
  • nginx+uwsgi启动Django项目 1.安装项目环境 系统环境:ubuntu16.04 python环境:python3.5.2 Django版本:django1.11.7 nginx环境:nginx_1.10.3 虚拟环境:virtualenv15.1.0 uwsgi版本:...

    nginx+uwsgi启动Django项目

    1.安装项目环境

    系统环境:ubuntu16.04

    python环境:python3.5.2

    Django版本:django1.11.7

    nginx环境:nginx_1.10.3

    虚拟环境:virtualenv15.1.0

    uwsgi版本:uwsgi2.0.17.1

    安装并进入项目虚拟环境:

    sudo apt-get install virtualenv
    virtualenv -p python3 env_my_project 
    source env_my_project/bin/activate
    pip install -r requirements.txt 

    2.项目配置及运行测试

    修改项目配置文件:
    cp my_project/settings_local.py.example my_project/settings_local.py
    
    修改es配置文件:
    cp rs_es/es_settings.py.example rs_es/es_settings.py

    wsgi.py:
    import os
    from django.core.wsgi import get_wsgi_application
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_project.settings_local")
    application = get_wsgi_application()

    项目运行测试:
    python manage.py collectstatic # 收集静态文件
    python manage.py makemigrations
    python manage.py migrate
    python manage.py runserver 0.0.0.0:8001

    3.NGINX和UWSGI相关配置

    sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/my_project
    sudo ln -s /etc/nginx/sites-available/my_project /etc/nginx/sites-enabled/
    sudo vim /etc/nginx/sites-enabled/my_project
    
    nginx配置:
    upstream my_project{
        server unix:///var/run/my_project.sock;
    }
    
    server {
        listen      8001;  //服务的端口号   服务通过nginx与uwsgi通信来启动
    
        server_name 192.168.xx.xx;  //nginx代理的ip  
        charset     utf-8;
    
        # max upload size
        client_max_body_size 10M;
    
        # send all non-media requests to the Django server.
        location / {
            uwsgi_pass  my_project;
            include     /etc/nginx/uwsgi_params;
        }
    
        location /static/ {
            root /home/ubuntu/my_project;
        }
    }
    
    Uwsgi配置:
    sudo mkdir /var/log/uwsgi
    sudo chmod -R 777 /var/log/uwsgi
    
    uwsgi.ini:
    [uwsgi]
    chdir=/home/ubuntu/my_project
    home=/home/ubuntu/my_project/env_my_project
    module=my_project.wsgi:application
    
    socket=/var/run/my_project.sock
    chmod-socket = 666
    
    master=True
    processes = 5
    max-requests=5000
    
    # clear environment on exit
    vacuum=True
    
    pidfile=/var/run/my_project.pid
    daemonize=/var/log/uwsgi/my_project.log
    
    # git pull 自动重启服务
    touch-reload=.git/index

    4.配置Emperor mode监听和系统自动启动uwsgi

    配置Emperor mode监听
    sudo mkdir /etc/uwsgi
    sudo mkdir /etc/uwsgi/vassals
    sudo ln -s /home/ubuntu/my_project/uwsgi.ini /etc/uwsgi/vassals/
    
    系统自动启动uwsgi
    sudo vim /etc/rc.local
    /usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals

    5.通过uwsgi启动django服务

    启动uwsgi
    uwsgi --ini uwsgi.ini
    
    重启nginx
    sudo service nginx restart
    
    启动django服务
    sudo uwsgi --reload /var/run/my_project.pid

    此时在浏览器通过ngnix代理出来的ip和端口即可访问服务

    posted @ 2018-10-05 00:10 Harvard_Fly 阅读(...) 评论(...) 编辑 收藏
    展开全文
  • 使用django_apscheduler动态创建定时任务,同一个任务被执行多次,暂时猜测原因是通过uwsgi启动django服务是多进程,每个进程启动了一个定时任务调度器,造成同一个定时任务被多次执行。关于这个问题向django_...

    使用django_apscheduler动态创建定时任务,同一个任务被执行多次,暂时猜测原因是通过uwsgi启动django服务是多进程,每个进程启动了一个定时任务调度器,造成同一个定时任务被多次执行。

    关于这个问题向django_apscheduler开发者发送邮件咨询,没有回复..

    目前的解决方法:

    1.固定的定时任务,通过socket或文件锁的方式解决,百度可查。但动态添加时不可用,会造成无法添加定时任务的问题。

    2.设定uwsgi进程数为1,此方法限制了django服务的并发量,小规模访问时可采用此种方法,简单稳定.

    3.通过类似celery的方式将django_apscheduler定时任务独立出来单独启动一套服务,设定单进程运行。这种方法解决了重复执行的问题,同时解放了django后台并发限制,并且可以处理即时的异步任务。(这是我自己的解决办法)

    展开全文
  • uwsgi 启动Django项目

    2021-03-12 20:28:51
    Nohup启动和使用UWSGI方式启动Python的web项目的区别? runserver方法是django开发中经常用到的运行方式,这个运行方式是django自带的,主要在测试和开发中使用,并且 runserver 开启的方式也是单进程 。 uWSGI是...

    题外话

    如需转载文章,请保留文章出处(blog.csdn.net/knight_zhou)。因为我的很多文章一般是会进行更新的。也避免百度搜出来一大推相似的文章,却找不到原创博主。

    nohup启动和使用UWSGI方式启动Python的web项目的区别?

    • runserver方法是django开发中经常用到的运行方式,这个运行方式 是django自带的,主要在测试和开发中使用,并且 runserver 开启的方式也是单进程 。
    • uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http 等协议。注意uwsgi是一种通信协议,而uWSGI是实现uwsgi协议和WSGI协议的 Web 服务器。uWSGI具有超快的性能、低内存占用和多app管理等优点,并且搭配着Nginx就是一个生产环境了,能够将用户访问请求与应用 app 隔离开,实现真正的部署 。相比来讲,支持的并发量更高,方便管理多进程,发挥多核的优势,提升性能

    步骤

    首先安装依赖

    pip install uwsgi
    

    命令行启动:

    首先进入虚拟环境
     

    source /home/data/webroot/devops-car/virtual/bin/activate

    不带静态文件启动

    uwsgi --http 0.0.0.0:9000 --chdir /opt/devops/ --wsgi-file /opt/devops/devops/wsgi.py --master --processes 4 --threads 2
    

    带静态文件启动

    uwsgi --http 0.0.0.0:9000 --chdir /opt/devops/ --wsgi-file /opt/devops/devops/wsgi.py --static-map=/static=static --master --processes 4 --threads 2
    

    配置文件启动

    (1)目录结构如下,我们再我们的项目根路径下创建文件夹 uwsgi_conf,把配置文件(uwsgi.ini)写在里面,当然日志路径你可以写到其他地方也可以写在这个目录里。

    $ tree -L 1 devops/
    devops/
    ├── audit
    ├── devops
    ├── manage.py
    ├── opsdb
    ├── static
    ├── sysadmin
    ├── templates
    ├── test
    └── uwsgi_conf

    创建日志目录:

    $ tree devops/uwsgi_conf/
    devops/uwsgi_conf/
    ├── logs
    │   └── uwsgi.log
    ├── pid
    └── uwsgi.ini
    
    2 directories, 2 files

    (2) 编写配置文件uwsgi.ini:

    [uwsgi]
    chdir=/home/data/webroot/devops-car/devops
    module=devops.wsgi:application
    processes=8
    workers=5
    procname-prefix-spaced=uwsgi-devops              
    py-autoreload=1                        
    http=0.0.0.0:8000
    for=static
    static-map=/static=%(chdir)/%(_)
    endfor=
    uid=knight.zhou
    gid=knight.zhou
    master=true
    vacuum=true
    thunder-lock=true
    enable-threads=true
    harakiri=30
    post-buffering=4096
    daemonize=%(chdir)/uwsgi_conf/logs/uwsgi.log
    pidfile=%(chdir)/uwsgi_conf/pid/uwsgi.pid

    也可以不指定静态文件,静态文件由Nginx进行解析:

    [uwsgi]
    chdir=/home/data/webroot/devops-car/devops
    module=devops.wsgi:application
    processes=8
    workers=5
    procname-prefix-spaced=uwsgi-devops              
    py-autoreload=1                        
    http=0.0.0.0:8000
    uid=knight.zhou
    gid=knight.zhou
    master=true
    vacuum=true
    thunder-lock=true
    enable-threads=true
    harakiri=30
    post-buffering=4096
    daemonize=%(chdir)/uwsgi_conf/logs/uwsgi.log
    pidfile=%(chdir)/uwsgi_conf/pid/uwsgi.pid

    (3) 启动和停止

    # 启动
    uwsgi --ini uwsgi.ini
    
    # 停止
    uwsgi --stop pid/uwsgi.pid 

    (3) 检查是否启动

    $ ps -ef |grep uwsgi
    knight.+   626   598  0 21:26 pts/0    00:00:00 grep --color=auto uwsgi
    knight.+ 32617     1  0 21:22 ?        00:00:00 uwsgi-devops uWSGI master
    knight.+ 32619 32617  0 21:22 ?        00:00:01 uwsgi-devops uWSGI worker 1
    knight.+ 32620 32617  0 21:22 ?        00:00:01 uwsgi-devops uWSGI worker 2
    knight.+ 32621 32617  0 21:22 ?        00:00:01 uwsgi-devops uWSGI worker 3
    knight.+ 32622 32617  0 21:22 ?        00:00:01 uwsgi-devops uWSGI worker 4
    knight.+ 32623 32617  0 21:22 ?        00:00:01 uwsgi-devops uWSGI worker 5
    knight.+ 32624 32617  0 21:22 ?        00:00:00 uwsgi-devops uWSGI http 1

    注意: 如果启动的时候有通过环境变量区分配置文件,需要修改如下(如果你不是通过设置环境变量启动话,下面的就不需要修改):

    $ cat ../devops/wsgi.py 
    """
    WSGI config for devops project.
    
    It exposes the WSGI callable as a module-level variable named ``application``.
    
    For more information on this file, see
    https://docs.djangoproject.com/en/3.1/howto/deployment/wsgi/
    """
    
    import os
    
    from django.core.wsgi import get_wsgi_application
    
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'devops.settings_prd')
    
    application = get_wsgi_application()
    

     

    展开全文
  • uwsgi启动django项目

    万次阅读 2019-08-18 22:53:46
    启动项目 uwsgi uwsgi.ini ; uwsgi --stop/reload xxx.pid 停止/重启uwsgi ; 设置后台运行,保存日志 daemonize=/home/kzzf/project/OfferHelp/log/uwsgi.log ; deamonize=1 ; 用来配置background运行 ; 设置每个...
  • Traceback (most recent call last):  File "./AdminSystem/wsgi.py", line 12, in ...这是我的uwsgi.ini的配置 ![图片说明](https://img-ask.csdn.net/upload/202004/03/1585879873_469250.png)
  • uwsgi启动django服务器

    2019-12-27 08:44:43
    [uwsgi] # 使用nginx连接时 使用 #socket=127.0.0.1:8010 # 直接作为web服务器使用 http=127.0.0.1:8010 # 配置工程目录 chdir=/var/www/web/Research # 配置项目的wsgi目录。相对于工程目录 wsgi-file=Research/...
  • Ubuntu+nginx+uwsgi+daphne部署django配置Django在ubuntu上所需要的库首先确定项目能在ubuntu上稳定的运行(python3 manage.py runserver)配置好django稳定运行的库和环境后开始在nginx上部署Django<1>配置...
  • “在lnmp部署Django时,笔者踩过太多坑了,笔者不得不开一页来记录步骤。”大概的思路安装Linux 系统下的环境python3nginxmysql(根据自己的项目而定)CentOS 搭建LNMP环境...或者是懒)另在装 uwsgi 模块pip3 insta...
  • Nginx+uWSGI启动Django

    2018-05-24 10:38:00
    Django的安装和启动 Django之--网页展示Hello World! Django之--通过MVC架构的html模板展示Hello World! Django之--MVC的Model Django之--POST方法处理表单请求 Django之--模板加载图片 到这里基本的测试暂时...
  • 在 manage.py 同级目录 创建 uwsgi.ini 文件 ,内容如下: [uwsgi] # 对外提供 http 服务的端口 http = :18123 #the local unix socket file than commnuincate to Nginx 用于和 nginx 进行数据交互的端口 ...
  • 在配置完uwsgi后需要在对应的虚拟环境中启动,不然就会使用当前的环境下的uwsgi uwsgi 配置: [uwsgi] ; 监听的端口 ;http = :8001 socket=127.0.0.1:8001 ; 项目所在目录,和manage.py同级(-----要修改为自己的...
  • 1.安装uwsgi 注意: uwsgi库对windows系统不太支持, 请使用macOS或Linux pip install uwsgi 2.新增配置文件uwsgi.ini (跟manage.py同一级目录) 文件说明: [uwsgi] #使用 Nginx 连接时使用,Django程序所在服务器地址 ...
  • 最近项目需要一个定时任务,本来打算不写进Django 的,因为只是一个简单的定时任务。因此就直接加入到了 Django, 本地使用Django 为1.9.2 版本, APScheduler3.6.1 APScheduler的使用这里不做过多说明,网上搜索...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 592
精华内容 236
关键字:

uwsgi启动django