Django learning record 11-use uwsgi para implementar en ubuntu18.04server

1. Instala varias cosas

Primero, si el python manage.py runserverservidor Django se puede iniciar localmente , uwsgiimplemé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 uwsgiproceso 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.pypara 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/KannaEste es el directorio del proyecto, complete la ruta absoluta
  • wsgi-file=Kanna/wsgi.py Especifique para cargar el archivo WSGI, complete el proyecto Djangowsgi模块
  • py-autoreload=1Después de modificar el código fuente de Django, uwsgi se reiniciará automáticamente para evitar el reinicio manual.
  • module=Kanna.wsgi.applicationEste es el contenido settingsde la WSGI_APPLICATIONcadena.
  • masterEspecifique para iniciar el proceso principal, luego el proceso padre del multiproceso de uwsgi es el pid iniciado
  • max-requests Número máximo de visitas
  • vacuum Cuando el servidor sale, el archivo de socket y el archivo pid se eliminan automáticamente
  • pidfile=/home/kanna/django_ws/Kanna/log/pid/uwsgi.pidEsta 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.logComenzó como un demonio y la ruta absoluta del archivo de registro. Causará systemdbloqueo, así que no lo use.
  • logto=/home/kanna/django_ws/Kanna/log/log/web.log Archivo de registro
  • http=0.0.0.0:80La dirección IP del servidor. Si desea utilizar un nginxproxy inverso, no utilice este campo, utilice socket
  • uid=root gid=root ID de usuario del servidor e ID de grupo de usuarios
  • enable-threads Habilitar hilo
  • harakiri Tiempo de interrupción automático
  • processes Número de procesos múltiples
  • threads Número de subprocesos por proceso
  • post-buffering=4096Habilite 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 disco
  • virtualenv=/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 systemdservicio. En systemdeste blog se detallan más introducciones:

Análisis de archivos de systemd y service

4.1 Crear .servicearchivo

sudo vim /etc/systemd/system/web_uwsgi.service

4.2 Escribir contenido

uwsgiSe recomienda utilizar la ruta absoluta whereis uwsgipara 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, stopa fin de utilizar systemdlos comandos también pueden funcionar uwsgi:
systemctl stop web_uwsgi.servicePrimer servicio uwsgi
systemctl start web_uwsgi.serviceservicio uwsgi abierta
systemctl restart web_uwsgi.serviceuwsgi servicio de reinicio

Supongo que te gusta

Origin blog.csdn.net/u011017694/article/details/113916701
Recomendado
Clasificación