收集静态文件及部署配置
DEBUG = False
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static"),
]
STATIC_ROOT = '/data/static'
python3 manage.py collectstatic 收集静态文件,成功后可在STATIC_ROOT目录查看
安装依赖
pip3 install uwsgi
django项目结构树
创建uwsgi.ini文件,用于启动django服务
vim uwsgi.ini
[uwsgi]
#套接字方式--使用nginx连接时使用
# socket=192.168.0.214:8000#http通信方式--直接做web服务器使用
http= 192.168.79.131:8000#配置项目目录
chdir=/data/web#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=web/wsgi.py# 进程数
processes=4# 线程数
threads=2# uwsgi做主进程
master=True# 存放进程编号的文件
pidfile=uwsgi.pid# 后台运行,并输出日志
daemonize=uwsgi.loguwsgi开机自启
uwsgi常用命令,小技巧: 加命令参数 & 可以将其放到后台运行
启动项目:
uwsgi --ini uwsgi.ini
重启项目:
uwsgi --reload pythonDjango.pid
停止项目:
uwsgi --stop pythonDjango.pid
uwsgi --http :8001 --wsgi-file test.py # 启动特定的文件
测试指定端口:
curl 127.0.0.1:8000
配置uwsgi服务重启service
vim /usr/lib/systemd/system/uwsgi.service
[Unit]
Description=uwsgi-uwsgi-support
After=network.target
Before=nginx.service
[Service]
ExecStartPre=/bin/sleep 60
ExecStart=/usr/sbin/start-uwsgi.sh
ExecReload=/bin/kill -HUP ( ps -ep | grep uwsgi)
Type=forking
[Install]
WantedBy=multi-user.target
配置start-uwsgi.sh 文件
uwsgi --ini /data/uwsgi.ini
启动uwsgi服务
systemctl enable uwsgi.service
systemctl start uwsgi.service
配置nginx.conf
# 负载均衡
upstream backend {server 127.0.0.1:8000;
}
server {# nginx监听8080端口listen 8080;autoindex on;location /static {alias /data/static;}location / {include uwsgi_params;uwsgi_pass backend;}
}
启动指令
service nginx start # 启动nginxservice nginx restart # 重启nginxsudo nginx -t # 重新加载配置
sudo nginx -s reload
遇到端口暂用问题解决方法
netstat -apn|grep 8000
kill -9 <pid>