Servidor Python: Configuración y Despliegue de un Servidor con Python
En este tutorial, aprenderás a configurar y desplegar un servidor web con Python. Para ello, utilizaremos el módulo http.server
de la biblioteca estándar de Python.
Requisitos
Para seguir este tutorial, necesitarás:
- Una computadora con Python 3 instalado.
- Una conexión a internet.
Creando un servidor simple
Para crear un servidor simple con Python, podemos utilizar el siguiente código:
from http.server import HTTPServer, SimpleHTTPRequestHandler
server_address = ("", 8000)
httpd = HTTPServer(server_address, SimpleHTTPRequestHandler)
httpd.serve_forever()
Este código creará un servidor web simple que escuchará en el puerto 8000. El servidor servirá todos los archivos que se encuentren en la carpeta actual.
Para probar este servidor, abre un navegador web y escribe la siguiente URL:
http://localhost:8000
Si todo ha ido bien, deberías ver una página web con el texto «Hello, world!».
Personalizando el servidor
Podemos personalizar el servidor cambiando el código anterior. Por ejemplo, podemos cambiar el puerto en el que escucha el servidor o podemos añadir nuevas funcionalidades.
Para cambiar el puerto, podemos modificar la línea siguiente:
server_address = ("", 8000)
Por ejemplo, para que el servidor escuche en el puerto 80, podemos cambiar la línea anterior a la siguiente:
server_address = ("", 80)
Para añadir nuevas funcionalidades, podemos añadir código a la clase SimpleHTTPRequestHandler
. Por ejemplo, podemos añadir una nueva ruta que sirva una página web personalizada.
El siguiente código añade una nueva ruta que sirve una página web con el texto «Bienvenido a mi servidor web»:
from http.server import HTTPServer, SimpleHTTPRequestHandler
class MyHTTPRequestHandler(SimpleHTTPRequestHandler):
def do_GET(self):
if self.path == "/":
self.send_response(200)
self.send_header("Content-type", "text/html")
self.end_headers()
self.wfile.write(b"<html><body><h1>Bienvenido a mi servidor web</h1></body></html>")
else:
super().do_GET()
server_address = ("", 8000)
httpd = HTTPServer(server_address, MyHTTPRequestHandler)
httpd.serve_forever()
Para probar esta nueva funcionalidad, abre un navegador web y escribe la siguiente URL:
http://localhost:8000
Si todo ha ido bien, deberías ver una página web con el texto «Bienvenido a mi servidor web».
Desplegando el servidor
Para desplegar el servidor en un entorno real, necesitamos configurar el servidor web para que escuche en una dirección IP pública. También necesitamos asegurarnos de que el firewall permite el tráfico entrante en el puerto que escucha el servidor.
En el caso de un servidor web local, podemos configurar el router para que reenvíe el tráfico entrante en el puerto 80 o 443 al servidor web.
Una vez que el servidor web esté configurado para escuchar en una dirección IP pública, podemos acceder a él desde cualquier navegador web.
Conclusión
En este tutorial, has aprendido a configurar y desplegar un servidor web con Python. Ahora puedes crear tus propios servidores web para servir tus propias aplicaciones web.
Recursos adicionales
- Documentación del módulo
http.server
: https://docs.python.org/3/library/http.server.html - Tutorial de Flask: https://flask.palletsprojects.com/en/2.0.x/tutorial/
- Tutorial de Django: https://docs.djangoproject.com/en/3.2/intro/tutorial01/