配置之前,首先了解uwsgi以及nginx的配置参数,这里就不多叙述,直接开始配置
以ubuntu为例,首先确保你的ubuntu系统执行python manage.py runserver 运行成功。
安装uwsgi
uwsgi是python 的一个模块,安装时需要注意的时你的项目环境时py2还是py3
pip install uwsgi //python2 pip3 install uwsgi //python3
安装成功使用uwsgi启动django项目
首先使用命令测试
创建data目录,将我的cmdb放到data目录下,如图
使用命令启动
uwsgi --http 192.168.11.179:8080 --file cmdb/wsgi.py --static-map=/static=static
参数说明
- http 这个就和runserver一样指定IP 端口
- file 这个文件就里有一个反射,如果你在调用他的时候没有指定Web Server就使用默认的
- static 做一个映射,指定静态文件,如css等文件
此时打开浏览器输入http://192.168.11.179:8080即可访问成功
启动成功之后,可以尝试使用uwsgi配置文件启动,
uwsgi配置文件
我的项目中脚本名称mysite_uwsgi.ini
[uwsgi] # 项目目录 chdir=/data/cmdb # 路径根据你的项目的真实路径填写 # 指定项目的application module=mysite.wsgi # 指定sock的文件路径 socket=/opt/proj/script/uwsgi.sock # 根据情况填写,不写也不影响 # 进程个数 workers=5 pidfile=/data/uwsgi.pid # 保存的pip目录,建议和项目同级目录 # 指定IP端口,根据情况选择http or socket,一般选择socket # http=192.168.11.179:8080 socket = 192.168.11.179:8080 # 指定静态文件 static-map=/static=/data/cmdb/static # 启用主进程 master=true # 自动移除unix Socket和pid文件当服务停止的时候 vacuum=true # 序列化接受的内容,如果可能的话 thunder-lock=true # 启用线程 enable-threads=true # 设置自中断时间 harakiri=30 # 设置缓冲 post-buffering=4096 # 设置日志目录 daemonize=/data/uwsgi.log # 根据实际项目路径填写
启动脚本
/usr/local/bin/uwsgi --ini mysite_uwsgi.ini # 一般环境不同,此时的uwsgi的路径也会不同
浏览器访问 192.168.11.179:8080,成功即配置成功
安装nginx
apt-get install nginx
启动nginx,验证是否成功
/etc/init.d/nginx start 或者 service nginx start
详细配置就不再多叙述
最后开始配合使用
Django+uwsgi+nginx
在nginx的默认配置目录/etc/nginx/conf.d 添加cmdb.conf
server { listen 8000; # 根据自己爱好设置端口,访问的时候使用 server_name cmdb.com; access_log /var/log/nginx/access.log main; # Nginx日志配置 proxy_buffer_size 64k; proxy_buffers 32 32k; proxy_busy_buffers_size 128k; location /static { alias /data/cmdb/static; } location / { include uwsgi_params; uwsgi_pass 192.168.11.179:8080; } }
重启nginx
/etc/init.d/nginx restart 启动后可使用 nginx -t 查看是否成功
浏览器输入192.168.11.179:8000 (需要注意的是此时的端口是你的cmdb.conf 中监听的端口,和你的命令启动的8080端口不一样)
现实成功,即配置成功