1. Instala varias cosas
Primero, si el python manage.py runserver
servidor Django se puede iniciar localmente , uwsgi
impleméntelo a través del servidor de instalación . Si la pagoda está instalada, recuerde cambiar los permisos asudo su
- Suponiendo que Anaconda está instalado, el
uwsgi
proceso de instalación debería ser el siguiente:
conda install uwsgi
- Si es Python ordinario, directamente:
pip3 install uwsgi
2. Configurar uwsgi
En cualquier directorio, recomendado en el directorio raíz del proyecto Django, que está ahí manage.py
para configurar, se crea el directorio uwsgi.ini
(por supuesto, el nombre se toma a la ligera):
nombre del proyecto DjangoKanna
[uwsgi]
chdir=/home/kanna/django_ws/Kanna
wsgi-file=Kanna/wsgi.py
py-autoreload=1
module=Kanna.wsgi.application
master=true
max-requests=5000
vacuum=true
pidfile=/home/kanna/django_ws/Kanna/log/pid/uwsgi.pid
logto=/home/kanna/django_ws/Kanna/log/log/web.log
http=0.0.0.0:80
uid=root
gid=root
enable-threads=true
harakiri=30
processes=4
threads=2
post-buffering=4096
virtualenv=/home/kanna/anaconda3/envs/django/
Aquí hay una explicación del significado de cada línea de parámetros:
chdir=/home/kanna/django_ws/Kanna
Este es el directorio del proyecto, complete la ruta absolutawsgi-file=Kanna/wsgi.py
Especifique para cargar el archivo WSGI, complete el proyecto Djangowsgi模块
py-autoreload=1
Después de modificar el código fuente de Django, uwsgi se reiniciará automáticamente para evitar el reinicio manual.module=Kanna.wsgi.application
Este es el contenidosettings
de laWSGI_APPLICATION
cadena.master
Especifique para iniciar el proceso principal, luego el proceso padre del multiproceso de uwsgi es el pid iniciadomax-requests
Número máximo de visitasvacuum
Cuando el servidor sale, el archivo de socket y el archivo pid se eliminan automáticamentepidfile=/home/kanna/django_ws/Kanna/log/pid/uwsgi.pid
Esta es la ruta absoluta del proceso actual. Al mismo tiempo, reiniciar y detener también se basan en la operación del archivo pid.daemonize=/home/kanna/django_ws/Kanna/log/log/web.log
Comenzó como un demonio y la ruta absoluta del archivo de registro. Causarásystemd
bloqueo, así que no lo use.logto=/home/kanna/django_ws/Kanna/log/log/web.log
Archivo de registrohttp=0.0.0.0:80
La dirección IP del servidor. Si desea utilizar unnginx
proxy inverso, no utilice este campo, utilice socketuid=root gid=root
ID de usuario del servidor e ID de grupo de usuariosenable-threads
Habilitar hiloharakiri
Tiempo de interrupción automáticoprocesses
Número de procesos múltiplesthreads
Número de subprocesos por procesopost-buffering=4096
Habilite el almacenamiento en caché del cuerpo de la solicitud http. uWSGI guarda todos los cuerpos de solicitud HTTP más grandes que el tamaño limitado en el discovirtualenv=/home/kanna/anaconda3/envs/django/
Puede llenarse. Si la python predeterminada del entorno no es la python utilizada por el proyecto, debe completar la ruta absoluta de la python del otro entorno.
Para obtener más contenido de parámetros, puede echar un vistazo al blog de este gran tipo:
Materiales de referencia de uWSGI (una lista de opciones de configuración para la versión 1.0)
Tres. Corre
En el directorio del archivo de configuración
uwsgi --ini uwsgi.ini
Reinicio manual
uwsgi --reload xxx.pid
apagar
uwsgi --stop xxx.pid
Cuatro. Arranque desde el principio
En el entorno ubuntu18.04, las siguientes pruebas de código son correctas para
usar el systemd
servicio. En systemd
este blog se detallan más introducciones:
Análisis de archivos de systemd y service
4.1 Crear .service
archivo
sudo vim /etc/systemd/system/web_uwsgi.service
4.2 Escribir contenido
uwsgi
Se recomienda utilizar la ruta absoluta whereis uwsgi
para ver
[Unit]
Description=HTTP Interface Server For Django
[Service]
#自己修改一下路径
ExecStart=/usr/local/bin/uwsgi --ini /www/wwwroot/Kanna/uwsgi.ini
ExecReload=/usr/local/bin/uwsgi --reload /www/wwwroot/Kanna/log/pid/uwsgi.pid
ExecStop=/usr/local/bin/uwsgi --stop /www/wwwroot/Kanna/log/pid/uwsgi.pid
[Install]
WantedBy=multi-user.target
4.3 Ejecutar servicio
sudo systemctl enable /etc/systemd/system/web_uwsgi.service
4.4 Servicio de gestión
Como ya se ha configurado, start
,, reload
, stop
a fin de utilizar systemd
los comandos también pueden funcionar uwsgi
:
systemctl stop web_uwsgi.service
Primer servicio uwsgi
systemctl start web_uwsgi.service
servicio uwsgi abierta
systemctl restart web_uwsgi.service
uwsgi servicio de reinicio