1、nginx配置
server {
listen 80;
location / {
root /usr/share/nginx/html/dist; #vue 项目位置
index index.html;
}
location /api/ {
proxy_pass http://localhost:8000/; #axios api请求
}
}
server {
listen 8000;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9001; #django uwsgi 接口
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
2、uwsgi配置
SevenDays/wsgi.py
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "SevenDays.settings")
application = get_wsgi_application()
uwsig.ini 启动文件
[uwsgi]
# 对外提供 http 服务的端口
#http = :8000
#the local unix socket file than commnuincate to Nginx 用于和 nginx 进行数据交互的端口
socket = 127.0.0.1:9001
# the base directory (full path) django 程序的主目录
#chdir = /data/python_workspace/plant/cmdb_v1.1
chdir = /opt/python3/project/SevenDays
# Django's wsgi file
wsgi-file = SevenDays/wsgi.py
# maximum number of worker processes
processes = 4
#thread numbers startched in each worker process
threads = 2
#monitor uwsgi status 通过该端口可以监控 uwsgi 的负载情况
#stats = 0.0.0.0:9191
# clear environment on exit
vacuum = true
# 后台运行,并输出日志
daemonize = /opt/python3/project/SevenDays/logs/uwsgi.log
#
stats=%(chdir)/uwsgi.statu
3、asgi配置(channels websocket)
SevenDays/wsgi.py
#-*-coding:utf-8-*-
import os
import django
from channels.routing import get_default_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "SevenDays.settings")
django.setup()
4、启动
#!/bin/bash
ops=$1
# websocket地址 0.0.0.0:9002
start(){
uwsgi --ini /opt/python3/project/SevenDays/uwsgi.ini
nohup daphne -b 0.0.0.0 -p 9002 SevenDays.asgi:application > /opt/python3/project/SevenDays/logs/websocket.log &
}
stop(){
uwsgi --stop /opt/python3/project/SevenDays/uwsgi.pid
ps -ef | grep daphne | grep -v "grep" | awk '{print $2}' | xargs -I {} kill -9 {}
}
case $ops in
"start")
start
;;
"stop")
stop
;;
*)
echo "command: start|stop"
;;
esac