django 和 nginx 经过 uwsgi 来处理请求,相似于 nginx + php-fpm + phpphp
略html
pip install uwsgi
回想php-fpm安装完直接启动就完事了,好像只要配置php的路径
uwsgi的启动须要一大堆参数,能够写好一个配置文件 uwsgi_conf.ini,下面是一个demo:linux
# uwsig使用配置文件启动 [uwsgi] # 项目目录 chdir=/var/www/path/to/django/ # 指定项目的application(django 目录的 wsgi.py) module=pics.wsgi:application # 指定sock的文件路径 socket=/var/www/path/to/django/script/uwsgi.sock # 进程个数 workers=5 pidfile=/var/www/path/to/django/script/uwsgi.pid # 指定IP端口 http=127.0.0.1:80 # 指定静态文件 static-map=/static=/var/www/path/to/django/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=/var/www/path/to/django/script/uwsgi.log
配置文件解释:nginx
uwsgi [xxx.ini]
来启动服务uwsgi --stop [xxx.pid]
和uwsgi --reload [xxx.pid]
来中止和重启服务启动后,能够经过http://127.0.0.1来测试访问 django. (我在linux直接curl 127.0.0.1
测试)django
本机配置了一个php服务,想经过子路径/pics
来访问 django:app
# 指定项目路径uwsgi location /pics { include uwsgi_params; # 导入一个Nginx模块他是用来和uWSGI进行通信的 uwsgi_connect_timeout 30; # 设置链接uWSGI超时时间 uwsgi_pass unix:/var/www/path/to/django/script/uwsgi.sock; # 指定uwsgi的sock文件全部动态请求就会直接丢给 } # 指定静态文件 location /pics/static/ { alias /var/www/path/to/django/static/; index index.html index.htm; }
重启nginx nginx -s reload
,大功告成
curl