zoukankan      html  css  js  c++  java
  • django + uwsgi 部署上线

    django + uwsgi 部署上线

     

    开发阶段使用运行命令

    1 # 事实上runserver 就是django 自带的一个服务器 因为收发请求性能较差仅在开发阶段使用,
    项目部署我们一般使用uwsgi 服务器来处理动态请求
    2 python manage.py runserver
    
    

    啥是uwsgi?

    一个轻量级的python服务器 遵从 wsgi 协议,简单好用就是了

    流程

    1. 安装uwsgi

     
    1 pip install uwsgi
    2 # 无法成功下载试试更新pip 或者换国内源 
     
    1. 更改项目配置

    1 #线上模式
    2 3 # settings 中
    4 5 DEBUG = FALSE
    6 7 ALLOWSE_HOST=['*']
    8
    1. 创建 uwsgi启动文件

    ​方案一: ini 启动
     1 ------------uwsgi.ini------------
     2 [uwsgi]
     3 # 使用nginx 时
     4 socket = 127.0.0.1:8000
     5 # 直接使用uwsgi
     6 http= 127.0.0.1:8000
     7 # 项目目录 
     8 chdir=/home/python/Desktop/ai-web
     9 # 项目中uwsgi.py 位置相对于 项目目录
    10 wsgi_fire=ai-web/aiweb/wsgi,py
    11 processes=4 # 进程数
    12 threads=2 # 线程数
    13 master =True # 有主进程
    14 pidfire= uwsgi.pid    # 保存主进程的pid 在项目目录下
    15 daemonize =uwsgi.log # 设置后台运行 进程守护 信息写入日志 在项目目录下
    16 virtualenv=/home/python/.virtualenvs/aiweb # 设置虚拟环境路径
    17 -----------------------
    18 # 使用时注释全部去掉不然无法运行  socket 或http 选一个就行了 

    方案二

    因为方案一启动有时在ubuntu 下启动了uwsgi但是没有启动项目网上找了很多解决方案也没有所有给了方案二

    创建 xml 启动文件

    -------uwsgi.xml-----------

    <uwsgi>
        <http>172.16.51.218:21001</http>
        <chdir>/home/python/Desktop/astar-ai-web/astar_ai</chdir>
        <module>aiweb.wsgi</module>
        <processes>4</processes>
        <threads>2</threads>
        <master>true</master>
        <daemonize>uwsgi.log</daemonize>
        <pidfile>uwsgi.pid</pidfile>
    </uwsgi>

     

    1. 启动和停止

     1 启动:
     2 uwsgi --ini 配置文件路径 如:--ini uwsgi.ini
     3 uwsgi --ini uwsqi.ini # ini启动(路径注意)
      uwsgi -x uwsqi.xml  # xml 启动
    4 停止 5 uwsgi --stop uwsqi.pid #(路径注意) 6 7 # 查看日志 8 tail -f uwsgi.log 9 10 # uwsgi.log 和 uwsqi.pid 都是uwsgi启动后自动生成的有时候不知道原因没有生成 uwsqi.pid 想要停止项目可以先找到进程再杀掉 11 12 # 检查 进程 13 ps --aux |grep uwsgi

     

    缺点与不足:

    因为uwsgi 是轻量级的服务器 ,所以只处理动态请求,也就是说对于前后端不分离的开发模式,加载静态文件会出问题, 这种使用静态文件部署一般是再搭配Nginx

  • 相关阅读:
    『Asp.Net 组件』第一个 Asp.Net 服务器组件:自己的文本框控件
    『Asp.Net 组件』Asp.Net 服务器组件 的开发优势和劣势
    『开源』简单的代码统计工具 开源啦[有图有真相]
    文件中的类都不能进行设计,因此未能为该文件显示设计器。设计器检查出文件中有以下类: FormMain --- 未能加载基类
    DB2:FETCH FIRST 1 ROWS ONLY
    IEnumerable的几个简单用法
    一个字符串中包含逗号个数
    字符串处理总结之一(C#String类)
    C# 中DateTime的各种使用
    C# 键值对类相关
  • 原文地址:https://www.cnblogs.com/renoyuan/p/11750756.html
Copyright © 2011-2022 走看看