1uwsgi运行说明:
1无论启动还是关闭,都必须要执行ps aux|grep 'uwsgi'确认是否符合预期 2启动后,进程在后台执行,所有日志均输出在配置文件所在的目录的uwsgi.log中 3django中的代码有任何修改,都需要重启uwsgi
2安装uwsgi:
#检查是否已安装uwsgi [root@web01 ~]#pip freeze|grep -i 'uwsgi' #安装uwsgi [root@web01 ~]#pip install uwsgi==2.0.20 -i https://pypi.tuna.tsinghua.edu.cn/simple/
3uwsgi配置文件说明:
[root@web01 ~/djangoProject2/djangoProject2]#cat uwsgi.ini [uwsgi] #socket=127.0.0.1:8000 #此模式必须要有nginx http=127.0.0.1:8000 chdir=/root/djangoProject2 #用绝对路径指定项目目录 wsgi-file=djangoProject2/wsgi.py #用相对路径指定wsgi的位置 process=4 #进程个数,根据cpu核数定 threads=2 #每个进程中有几个线程 pidfile=uwsgi.pid #进程文件 daemonize=uwsgi.log #日志文件 master=True #开启主进程模式,即要有master进程去监视下面的子进程
4启停uwsgi:
#进入uwsgi所在的目录 [root@web01 ~/djangoProject2/djangoProject2]#ls asgi.py __init__.py media __pycache__ settings.py urls.py uwsgi.ini views.py wsgi.py #启动uwsgi
#uwsgi -d --ini uwsgi.ini
[root@web01 ~/djangoProject2/djangoProject2]#uwsgi --ini uwsgi.ini [uWSGI] getting INI configuration from uwsgi.ini #查看目录多出来了启动文件和日志文件 [root@web01 ~/djangoProject2/djangoProject2]#ls asgi.py __init__.py media __pycache__ requirements.txt settings.py urls.py uwsgi.ini uwsgi.log uwsgi.pid views.py wsgi.py #检查uwsgi是否已经启动: [root@web01 ~/djangoProject2/djangoProject2]#ps aux|grep 'uwsgi' root 325189 0.0 1.1 64844 9368 ? S 16:04 0:00 uwsgi --ini uwsgi.ini root 325190 0.0 1.3 148060 11172 ? Sl 16:04 0:00 uwsgi --ini uwsgi.ini root 325191 0.0 0.3 64844 2736 ? S 16:04 0:00 uwsgi --ini uwsgi.ini root 325218 0.0 0.1 12348 1052 pts/1 S+ 16:15 0:00 grep --color=auto uwsgi #停止uwsgi:
#pkill -9 uwsgi
[root@web01 ~/djangoProject2/djangoProject2]#uwsgi --stop uwsgi.pid [root@web01 ~/djangoProject2/djangoProject2]#ps aux|grep 'uwsgi' root 325243 0.0 0.1 12348 1144 pts/1 S+ 16:42 0:00 grep --color=auto uwsgi
5uwsgi常见问题汇总:
1启动失败: 原因:端口被占用 解决方法: 通过lsof -i:8000查看具体进程,然后杀掉进程后重启uwsgi即可! 2停止失败: 原因:重复启动uwsgi导致pid文件中的进程号失准 解决方法: 通过pa -aux|grep 'uwsgi'命令找到进程并查看进程号,然后用cat uwsgi.pid 命令查看文件内的进程号,如果号码不一致,就直接pkill -9 uwsgi或者直接kill -9 进程号。