Para configurar ASGI + Apache necesitamos arrancar Daphne. Daphne es un servidor HTTP que permite integrar Sockets con Django.
Daphne
Daphne se instala directamente como dependencia de Athento con versión 3.0.2. https://github.com/django/daphne
pip install daphne==3.0.2
respecto a la ejecución, el servidor se arranca con:
sudo nohup daphne -p 8001 athentose.asgi:application & disown
Se inicia el servicio ASGI de Daphne con binding directo a 127.0.0.1 para que Apache haga uso de él con configuración de ProxyPass. Ese servicio debe ser demonizado como servicio de Ubuntu.
Daphne ofrece la posibilidad de incluir securización adicional, o control de performance tal y como hacemos con WSGI. Este aspecto es de alta importancia para poder ajustar configuraciones a diferentes arquitecturas.
Además, debe añadirse la documentación de cómo monitorizarse del mismo modo que se hace con WSGI directamente a control de estado de Apache. Hay que tener en cuenta que, ahora tendríamos 2 servidores que debemos controlar: Apache + Daphne.
Apache2
Instalar el módulo:
sudo a2enmod proxy_wstunnel
Con respecto a la configuración de Apache2, hay que añadir las siguientes reglas:
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://0.0.0.0:8001%{REQUEST_URI} [P,QSA,L]
ProxyPassMatch ^/(ws(/.*)?)$ ws://0.0.0.0:8001/$1
Se debe añadir el nuevo Virtual Host en la instalación que contenga este cambio.
Comentarios
0 comentarios
Inicie sesión para dejar un comentario.