一、安装uwsgi
# 安装环境
pip3 install -r requirements.txt -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
测试是否安装成功
# 创建文件
vi test.py
# 文件内容
#!/usr/bin/env python3
# coding:utf-8
import sys
def application(env,start_response):
start_response('200 OK',[('Content-Type','text/html')])
return 'Welcome to use uwsgi!!!'.encode()
运行:
目录/uwsgi --http 0.0.0.0:8997 --wsgi-f 目录/test.py
开放端口
sudo ufw allow 8997 //开放端口
sudo ufw reload //重启防火墙,是配置生效
安装 firewalld
apt install firewalld
# 开放8997端口
firewall-cmd --zone=public --add-port=8997/tcp --permanent
# 删除端口
firewall-cmd --zone=public --remove-port=8997/tcp
# 重启防火墙
firewall-cmd --reload
# 查看防火墙状态
#切换用户
sudo su root
#查看tcp
sudo netstat -tlpn
在浏览器中,访问: http://IP:8997 ,注意修改对应的 ip 地址
?运行访问结果
二、配置django启动的? uwsgi.ini文件
创建文件 uwsgi.ini? uwsgi 为文件名可以随便取
vi uwsgi.ini
[uwsgi]
# new_mailtrack --》这是我的项目目录
socket = 127.0.0.1:8081
# 的项目目录
chdir = /home/yjc/Python/pyworke/new_mailtrack
# home = /home/mysite_env # 如果有虚拟环境,则需要指定虚拟环境目录; 没有则注释掉
module = new_mailtrack.wsgi:application
processes = 4
threads = 2
# 最大超时时间
harakiri = 60
# 最大请求数,到了后就会自动重启
max-requests = 5000
# 在失去权限前,将pid写到指定的pidfile文件中
# pidfile = /home/projectName/master.pid
# 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器, 不配置日志就是前台运行,部署测试时可以先注释掉
# daemonize = /data/log/uwsgi/uwsgi.log
# chmod-socket = 664 # 如果没有权限访问uWSGI的socket,这里可以设置权限
# vacuum = True
#指明你的虚拟解释器的第一层路径
# home = /home/yjc/Python/new_mailtrack_venv
#如果你没用nginx,想通过uwsgi直接启动web服务,指明http协议
#http = 0.0.0.0:8082
#在退出uwsgi环境后,清空环境变量
vacuum = true
# 后台启动
#daemonize = yes
master = true
?????????????? 启动命令: uwsgi --ini? projectName_uwsgi.ini
停止命令:?uwsgi --stop master.pid
重启命令:uwsgi --reload master.pid
三、Nginx配置
nginx 我值做了简单的配置
server{
listen 80 ;
server_name localhost ;
location / {
#代理8080端口
#proxy_pass http://127.0.0.1:8080;
include uwsgi_params;
uwsgi_pass 127.0.0.1:8081;
}
#静态文件目录 python manage.py collectstatic 收集的静态文件
location /static/ {
autoindex on;
alias /static;
}
}
?最后启动项目:uwsgi --ini? uwsgi.ini
安装完毕后,可以使用以下命令关闭 uwsgi 进程
killall -9 uwsgi
?
四、收寄静态文件
1,再settings.py 中配置收集静态文件的路径
STATIC_ROOT = os.path.join(BASE_DIR, 'static_all') # 两种方式都可以 (django中推荐使用)
STATIC_ROOT = '/var/static'
?2、执行命令
python manage.py collectstatic
参考:Python/WSGI应用快速入门 — uWSGI 2.0 文档?
|