Apache HTTP Server (Español)/mod_wsgi (Español)
Introduccion
De acuerdo a la pagina del proyecto:
- El propósito de mod_wsgi es implementar un modulo se uso simple para Apache que pueda alojar cualquier aplicación en Python que soporte la interfaz WSGI de Python. El modulo sería apropiado para su uso tanto en alojamiento de sitios web de alto rendimiento, como su sitio personal promedio con manejo propio alojados en servicios de alojamiento web.
mod_wsgi es un modulo para el Servidor HTTP Apache que incorpora una aplicación Python dentro del servidor y les permite comunicarse a través de la interfaz Python WSGI como esta definido en Python PEP 333. WSGI es una de las maneras de Python para producir aplicaciones web de alta calidad y alto rendimiento.
WSGI provee una manera estándar de interactuar a diferentes aplicaciones web sin molestias. Varias aplicaciones o frameworks en Python muy conocidos proveen WSGI para una despliegue e integración fácil. Significa que puede integrar su blog en Django y el Trac de su proyecto en una sola aplicación Python que los envuelve para lidiar con, digamos, autenticación sin modificarlos.
Ejemplo:
Instalación
Instale mod_wsgiAUR, el cual provee un modulo que funciona con todas las versiones comunes de Python (3.x).
Configuración de Apache
Como es indicado en la instalación, añada la siguiente linea al archivo de configuración de Apache:
/etc/httpd/conf/httpd.conf
LoadModule wsgi_module modules/mod_wsgi.so
Reinicie httpd.service
.
Compruebe que Apache este ejecutándose correctamente. Si el comando previo no devolvió nada, significa que el inicio de Apache fue correcto. Si no, puede ver los errores con el siguiente comando:
systemctl -l status httpd.service
Probando el modulo
Añada esta linea en el archivo de configuración de Apache:
/etc/httpd/conf/httpd.conf
WSGIScriptAlias /wsgi_app /srv/http/wsgi_app.py
Cree un archivo de prueba:
/srv/http/wsgi_app.py
#-*- coding: utf-8 -*- def wsgi_app(environ, start_response): import sys output = sys.version.encode('utf8') status = '200 OK' headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))] start_response(status, headers) yield output # mod_wsgi necesita la variable «application» para servir nuestra pequeña aplicación application = wsgi_app
Reinicie Apache:
systemctl restart httpd
Puede comprobar el funcionamiento adecuado yendo a la siguiente dirección: http://localhost/wsgi_app