Servidor Python: Configuración y Despliegue de un Servidor con Python

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:

Python
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:

Python
server_address = ("", 8000)

Por ejemplo, para que el servidor escuche en el puerto 80, podemos cambiar la línea anterior a la siguiente:

Python
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»:

Python
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/