Descrição do problema: Às vezes, você deseja apenas implantar rapidamente um projeto Django para obter um desenvolvimento iterativo do projeto. Este artigo apresenta como obter uma implantação rápida de projetos Django sem usar Nginx e apenas usando uwsgi.
1. Instale o uwsgi
# 在进入虚拟环境的情况下
pip install uwsgi
Se você ainda não sabe como criar um ambiente virtual Python no Ubuntu, consulte meu artigo anterior:
Dois, comece uwsgi
1. Início de comando direto
Vantagens: o mais simples
Desvantagens: Não é possível executar em segundo plano e não é possível registrar logs
# 在你的工程项目目录下执行
uwsgi --http 0.0.0.0:80 --file 主APP文件夹/wsgi.py
# 如果不行的话,前面加上sudo
sudo uwsgi --http 0.0.0.0:80 --file 主APP文件夹/wsgi.py
- http0.0.0.0:80
Especifique o endereço do host de acesso (0.0.0.0 significa que qualquer host pode acessar) e o número da porta, que pode ser abreviado como: 80
--file pasta principal do APP/wsgi.py
Este é o local do seu arquivo wsgi.py, geralmente na pasta principal do aplicativo.
2. Comece pelo arquivo de configuração uwsgi.ini
Crie um arquivo de configuração e escreva o seguinte conteúdo. Coloque o arquivo de configuração uwsgi.ini no mesmo nível que manager.py.
[uwsgi]
# 设置访问主机IP和端口
http = 0.0.0.0:80
#指定与Nginx通信的方式,不影响uwsgi本身运行。如果配置了需要到nginx中进行相关配置-才能通过nginx访问Django
# socket = 127.0.0.1:8001
#django项目目录,与manager.py同级
chdir = /home/ubuntu/DjangoWebProject/项目名称/
#主应用中的wsgi,下面这种配法是在Django根目录下运行uwsgi有效,主APP名为有settings.py的那个目录名。如果是其他目录运行,下面建议写成绝对路径。
wsgi-file = 主APP名/wsgi.py
# 启动一个master进程,来管理其余的子进程
master=true
processes = 2 # 一般CPU是几核就开几个
threads = 2
#服务停止时自动移除unix Socket和pid文件
vacuum = true
#设置后台运行保存日志。只要配置了daemonize就会让uwsgi后台运行,同时将日志输出到指定目录
daemonize = /home/ubuntu/DjangoWebProject/项目/log/uwsgi.log
logto = /manage.py文件所在文件夹/log/uwsgi.log
# 上面这两个的路径是一样的,只是我描述的方式不同
#保存主进程的pid,用来控制uwsgi服务
pidfile=/tmp/你自己取一个名字.pid
#uwsgi --stop/reload /tmp/可以是master.pid 停止/重启uwsgi
3. Comandos iniciados através de arquivos de configuração
# 如果运行不成功可以加上sudo
sudo uwsgi --ini uwsgi.ini
3. Reinicie ou pare o uwsgi
1. Comando de inicialização
uwsgi --ini uwsgi.ini
2. Comando de parada
# 要想用这个命令前提是,你配置文件写了vacuum和profile
uwsgi --stop /tmp/master.pid
3. Comando de reinicialização
# 要想用这个命令前提是,你配置文件写了vacuum和profile
uwsgi --reload /tmp/master.pid
4. Encerre o uwsgi encerrando o processo
# 第一步先查询进程号PID
ps -ef | grep uwsgi
# 第二步关闭进程
kill -9 uwsgi_pid