1. 安装uwsgi
执行命令: pip3 install uwsgi
2. 配置uwsgi文件(django项目的主目录下新建uwsgi.ini)
[uwsgi] # 指定ip(内网ip) # http = 172.18.64.217:8000 # 项目虚拟环境(使用python的虚拟环境时需要配置) virtualenv=/root/tester_site/venv #(内网ip,与nginx的ip要保持一致) socket = 172.18.64.217:4589 # django 项目路径(文件夹下存在manage.py) chdir = /root/.jenkins/workspace/tester_site/mysite # 主APP路径,即存在wsgi.py文件的文件路径 wsgi-file = mysite/wsgi.py module = mysite.wsgi:application #启用主线程 master = true # 最大进程数(cpu) processes = 4 # 进程个数 workers = 5 # 启用线程 enable-threads=true # 最大线程数 threads = 10 #序列化接受的内容,如果可能的话 thunder-lock=true #设置自中断时间 harakiri=60 # 监控(uwsgi stats服务 #stats = 47.52.31.161:9000 # 设置缓存 post-buffering=4096 # 清理环境(自动移除unix Socket和pid文件当服务停止的时候) vacuum = true # log daemonize = /root/.jenkins/workspace/tester_site/mysite/logs/uwsgi.log # sock文件存放目录,方便nginx进行sock连接交互 #socket = /usr/local/py/Monster/testrunner/testrunner/logs/uwsgi.sock disable-logging = true #进程id存放文件 pidfile = /root/.jenkins/workspace/tester_site/mysite/uwsgi.pid #静态文件映射,第一个是django别名,第二个是django的真实路径 static-map=/static=/root/.jenkins/workspace/tester_site/mysite/static #文件权限 chmod-socket = 666 #最大请求数 max-requests = 5000 #使用用户 uid=root #组 gid=root #使用utf-8 env LANG="zh_CN.UTF-8" env LANGUAGE="zh_CN.UTF-8"
3. 配置nginx
查看nginx配置文件路径
nginx -t
在配置文件的vhost路径下新建django.conf配置文件
/usr/local/nginx/conf/vhost/django.conf
server { listen 8000; #表示 Nginx 默认监听的是80端口 index index.html index.htm index.nginx-debian.html; server_name 172.18.64.217; location / { include uwsgi_params; uwsgi_pass 172.18.64.217:4589; #这两行参数表示和uwsgi 结合,而且这个端口号就是前面 uwsgi 开启Django 项目的端口号,这是一个服务器对内的端口号,80为对外的,收到请求后如果是动态路由,则转发给这个端口的服务进行处理 uwsgi_read_timeout 60; } location /static { #这里就是静态文件的配置 expires 30d; autoindex on; add_header Cache-Control private; alias /root/.jenkins/workspace/tester_site/mysite/static; #这里是Django项目静态文件地址,也是请求服务以后,直接获取的地址 } }
4. 激活python的虚拟环境并进入到django项目所在目录下执行uwsgi uwsgi.ini 启动django项目
到此所有组件都配置完毕并完成django的启动