1、安装uwsgi
pip install uwsgi
2、测试uWSGI: 新建文件test.py,写入以下内容
def application(env, start_response): start_response(‘200 OK‘, [(‘Content-Type‘,‘text/html‘)]) return [b"Hello World"] # python3 #return ["Hello World"] # python2
运行测试(访问输出Hello World则成功):
uwsgi --http 0.0.0.0:8000 --wsgi-file test.py
如果找不到uwsgi命令,则需要建立软链接:
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
3、使用uwsgi命令启动Django项目
uwsgi --http :8000 --file dj_test/wsgi.py 说明: # 需要在Django项目目录下运行这个命令 # --file: 指定Django项目的wsgi.py文件(指定协议) # 目前这样操作只能加载动态数据,无法加载静态文件,若要加载静态文件需要使用 --static-map 可以指定静态文件
4、使用uwsgi配置文件启动
新建一个uwsgi.ini配置文件(和manage.py同级目录)
配置文件内容如下:
[uwsgi] # 项目目录 chdir=/workspace/django_project/dp_api/dataplatform/ # 指定项目的application module=dataplatform.wsgi:application # 指定sock的文件路径(nginx+uwsgi时使用) socket=/workspace/django_project/dp_api/script/uwsgi.sock # 进程个数 workers=5 # pid文件(生成) pidfile=/workspace/django_project/dp_api/script/uwsgi.pid # 指定IP端口 http=10.226.128.185:8001 # 指定静态文件 static-map=/static=/workspace/django_project/dp_api/dataplatform/static # 启动uwsgi的用户名和用户组 uid=root gid=root # 启用主进程 master=true # 自动移除unix Socket和pid文件当服务停止的时候 vacuum=true # 序列化接受的内容,如果可能的话 thunder-lock=true # 启用线程 enable-threads=true # 设置自中断时间 harakiri=30 # 设置缓冲 post-buffering=4096 # 设置日志目录(生成) daemonize=/workspace/django_project/dp_api/script/uwsgi.log
配置完成后,启动uwsgi:
uwsgi --ini uwsgi.ini