django基于uwsgi在 nginx下运行

2022-08-05 20:47:22 浏览数 (1)

硬件:树莓派3b

环境:python3,nginx

目录:root@HeannysPi:/home/pi/Documents/webtest#

文件列表:

pip安装uwsgi,django

新建django项目

代码语言:javascript复制
django-admin startproject webtest

测试运行

代码语言:javascript复制
python3 manage.py runserver 0.0.0.0:8088

编辑文件uwsgi.ini

代码语言:javascript复制
[uwsgi]
socket = 127.0.0.1:8088
chdir=/home/pi/Documents/webtest/
#module=webtest.wsgi:applicationi
wsgi-file=/home/pi/Documents/webtest/webstest/wsgi.py
master = true
workers=1 
vacuum=true
thunder-lock=true
enable-threads=true
harakiri=10
post-buffering=4096
daemonize =./log/uwsgi.log
pidfile=./log/uwsgi.pid
py-autoreload = 1

将nginx下的uwsgi_params复制到项目根目录,创建log目录,用于存放日志等

编辑nginx配置文件

添加:

代码语言:javascript复制
upstream django {
    # server unix:///path/to/your/mysite/mysite.sock; # for a file socket
         server 127.0.0.1:8088; # for a web port socket (we'll use this first)
         }
server {
        listen 8001;
        server_name localhost;
        location / {
                uwsgi_pass django;
                include /home/pi/Documents/webtest/uwsgi_params;
        }
}

重新读取配置文件

代码语言:javascript复制
nginx -s reload

启动uwsgi

代码语言:javascript复制
uwsgi --ini uwsgi.ini

打开localhost:8001,重新出现小火箭就说明成功啦

nginx负载均衡:

代码语言:javascript复制
 upstream register_http {
                #ip_hash;   什么是源地址哈希法,就是对访问用户的IP进行hash后的结果进行分配,这样每一个用户固定请求同一个后端服务器,能够解决session的问题。
                server 127.0.0.1:8801;
                server 127.0.0.2:8801 down;
                server 127.0.0.3:8888 weight=2;
               # fair;
        } 
        #down:表示单前的server临时不參与负载.
        #weight:默觉得1.weight越大,负载的权重就越大
        #backup:其他全部的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻

        
    #域名绑定,nginx调度服务
    server {
        listen          80;
        listen          443 ssl;
        server_name     register.game.coccnet.com;
        ssl on; 
        ssl_certificate /usr/local/nginx/html_register/ssl/1.pem;
        ssl_certificate_key /usr/local/nginx/html_register/ssl/2.key;
        location / {
                proxy_pass http://register_http; 
         }
    }


    # register http 8801(处理服务器)
    server {
        listen  8801;
        #反向代理
        location ~ /api/* { 
                proxy_pass   http://127.0.0.1:8888;
            }
        location / {
                root html_register;
                index index.html;
        }

    }

0 人点赞