mod_wsgi es un módulo de Apache que proporciona una interfaz para hospedar aplicaciones web basadas en Python bajo Apache. Es adecuado para su uso en el alojamiento de sitios web de producción de alto rendimiento, así como para sus sitios personales autogestionados promedio que se ejecutan en servicios de alojamiento web. Puede implementar fácilmente aplicaciones escritas con marcos y herramientas como Django, Web.py, Werkzug, Chery.py, TurboGears y Flask usando mod_wsgi.
En este tutorial, aprenderemos cómo instalar y configurar mod_wsgi con el servidor Apache en el servidor Ubuntu 20.04.
Requisitos
- Un servidor con Ubuntu 20.04.
- Se configura una contraseña de root en el servidor.
Cómo empezar
Antes de comenzar, es una buena idea actualizar su sistema con la última versión. Puede actualizar su sistema con el siguiente comando:
apt-get update -y
apt-get upgrade -y
Después de actualizar el sistema, reinícielo para implementar los cambios.
Instalar Python
De forma predeterminada, Python viene preinstalado en el servidor Ubuntu 20.04. Si no está instalado, puede instalarlo con el siguiente comando:
apt-get install python3 libexpat1 -y
Una vez que se haya completado la instalación, puede continuar con el siguiente paso.
Instalar Apache y mod_wsgi
A continuación, deberá instalar el servidor web Apache y el módulo Python mod_wsgi en su sistema. Puede instalarlos ejecutando el siguiente comando:
apt-get install apache2 apache2-utils ssl-cert libapache2-mod-wsgi -y
Una vez que todos los paquetes estén instalados, puede continuar con el siguiente paso.
Configurar Apache para mod_wsgi
A continuación, debe crear un nuevo script de Python dentro del directorio raíz web predeterminado de Apache y servirlo a través del módulo de Apache mod_wsgi.
Puedes crearlo con el siguiente comando:
nano /var/www/html/wsgy.py
Agregue las siguientes líneas:
def application(environ,start_response): status = '200 OK' html = 'html>\n' \ '<body>\n' \ '<div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;">\n' \ 'Welcome to mod_wsgi Test Page\n' \ '</div>\n' \ '</body>\n' \ '</html>\n' response_header = [('Content-type','text/html')] start_response(status,response_header) return [html]
Guarde y cierre el archivo. Luego, cambia la propiedad del archivo a www-data con el siguiente comando:
chown www-data:www-data /var/www/html/wsgy.py
A continuación, cree un archivo de configuración de host virtual de Apache para servir este archivo a través del protocolo HTTP.
nano /etc/apache2/conf-available/wsgi.conf
Agregue la siguiente línea:
WSGIScriptAlias /wsgi /var/www/html/wsgy.py
Guarde y cierre el archivo. Luego, habilite la configuración de mod-wsgi y reinicie el servicio de Apache con el siguiente comando:
a2enconf wsgi
systemctl restart apache2
Modificación de prueba-wsgi
En este punto, el servidor web Apache está configurado para servir su archivo Python a través del protocolo HTTP.
Para probarlo, abra su navegador web y escriba la URL http://your-server-ip/wsgi. Debería ver la página de prueba mod-wsgi en la siguiente pantalla:
Conclusión
¡Felicitaciones! Ha implementado con éxito el script Python en el servidor web Apache utilizando el módulo mod_wsgi en el servidor Ubuntu 20.04. Espero que ahora pueda implementar fácilmente cualquier aplicación de Python con Apache y mod_wsgi en el entorno de producción.