Apache HTTP Server (Español)/mod_wsgi (Español)

From ArchWiki
Esta traducción de Apache HTTP Server/mod_wsgi fue revisada el 2020-12-02. Si existen cambios puede actualizarla o avisar al equipo de traducción.

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

Vease tambien