Django+uwsgi+nginx

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的启动

原文地址:https://www.cnblogs.com/sprouts/p/15687107.html