Tengo una pregunta sobre el uso de una computadora como servidor web. ¿Por qué una determinada computadora puede ser un servidor web? ¿Qué características hacen que sea un servidor web? ¿Hay algún caso en el que una computadora no pueda actuar como servidor web?
networking
webserver
VincentTheonardo
fuente
fuente
Respuestas:
Casi cualquier computadora puede usarse como servidor [web], siempre que pueda conectarse a una red y pueda ejecutar software de servidor web. Como un servidor web puede ser bastante simple, y hay servidores web gratuitos y de código abierto, en la práctica, cualquier dispositivo puede actuar como un servidor web.
El mayor problema es el lado de la red. Para que un sistema actúe como servidor, otras máquinas deben poder acceder a él. Si es solo para usar en una LAN, no hay preocupaciones; sin embargo, si es para usar desde Internet más amplio, entonces los datos deben ser enviados a él. Esto requiere una dirección IP estática asociada con el servidor (o el puerto reenviado a través de un enrutador) o un servicio externo que pueda asignar un nombre de dominio / subdominio a una dirección IP dinámica cambiante.
(FWIW, puede comprar computadoras de $ 10 que pueden actuar como un servidor web básico).
Por supuesto, si bien cualquier dispositivo puede actuar como un servidor web, la funcionalidad de los sitios web puede variar enormemente, y un dispositivo barato (o conexión lenta) puede no ser capaz de satisfacer las demandas dependiendo de cuál sea el sitio web específico.
Noto que todo lo anterior habla de servidores web, pero lo mismo puede decirse de casi cualquier tipo de servidor.
fuente
No es del todo complicado. Simplemente depende de su definición de "servidor web".
Es completamente posible ejecutar un "servidor web" en dispositivos tan simples como un microcontrolador.
Consideremos lo que el servidor web mínimo debería hacer. Tendría que generar algo de texto, no necesariamente en HTML para un cliente. Necesitaría saber que una solicitud es una solicitud y responder adecuadamente. Ni siquiera necesitaría conectividad de red si su "cliente" fuera local. Sería un servidor web completamente inútil.
Sería el servidor web equivalente a uno de estos .
Agregar conectividad de red para un cliente (Ethernet es bueno, pero no hay ninguna razón técnica por la que no pueda conectarse a un servidor web que se ejecuta en wifi) y sería mejor poder enrutar desde un cliente.
Un ESP8266 de $ 5 : un microcontrolador barato y mínimo con wifi puede manejar gran parte de eso, y tal vez incluso contenido dinámico básico
Yo uso algo así para compartir archivos rápidamente usando Python. Todavía es completamente posible escribir algo como esto en un microcontrolador o incluso ejecutarlo en un teléfono.
El contenido estático es aburrido. Agregue lenguajes dinámicos y necesitará comenzar a pensar en sistemas más pesados. Las cosas que ejecutan Linux o Windows son agradables.
En este punto, estás hablando de enrutadores de consumo, pequeñas aplicaciones que usan páginas web en la interfaz de usuario y todo eso.
Un servidor web ni siquiera es un problema complejo y puede escribirse en cinco líneas de bash y ejecutarse en Linux. Now doom ... Pero cualquier sistema que pueda ejecutar doom puede ejecutar un servidor web.
Una buena configuración de servidor web capaz de manejar una carga dada es algo más complicada.
fuente
Lo mínimo
Literalmente, cualquier computadora puede convertirse en un servidor web si tiene lo siguiente:
¿Pero sería suficiente? Ahora, esa es la pregunta difícil.
Sirviendo una Intranet
Para que una computadora se convierta en un servidor web que sirve páginas web modernas o aplicaciones web a toda una comunidad (por ejemplo, escuela, empresa, museo):
Pero eso era solo un mínimo para pequeñas operaciones. Cuando su operación aumenta (es decir, obtiene un tráfico más pesado y sirve aplicaciones web complejas en lugar de páginas estáticas), sus necesidades crecen. Eventualmente necesitarás:
Sirviendo al mundo exterior
Para explotar la infraestructura de Internet para servir al mundo entero, necesitará:
Sin estos, todo lo que tiene es un posible servidor web.
fuente
Programación / Perspectiva del software:
Un programa que puede escuchar el puerto 80 en el adaptador de red. Eso se ejecuta en el sistema operativo que tienes. Y puede procesar las solicitudes de acuerdo con las definiciones HTTP.
Se puede acceder a un programa que escucha cualquier puerto desde cualquier computadora en la misma red. Idealmente, debería ser un puerto estándar conocido (80 y 8080 para servidores HTML; elija más allá de 1024 para aplicaciones personalizadas). Incluso es una práctica común ejecutar el desarrollo de un programa accesible en red en la misma computadora en la que está realizando el desarrollo.
Si puede alcanzarlo a través de localhost, puede hacerlo desde cualquier lugar dentro de la misma red, y desde cualquier otro lugar hay una ruta a esta máquina y su adaptador de red.
Advertencia: muchos entornos de desarrollo todo en uno en instalaciones predeterminadas limitan el acceso a Localhost. No desea que sus herramientas de administración sean accesibles desde Internet, después de todo.
Hardware:
El hardware comienza en algún lugar de "esa computadora de 10 años que ejecuta XP o Linux" y termina en algún lugar alrededor de "128 núcleos, con 2 TiB RAM y 256 TiB de SSD en una incursión", con la base de datos ejecutándose en un servidor diferente también . Las aplicaciones web tienden a ser agradablemente paralelizables, por lo que puede / tener que hacerlo aún más con clústeres de esos servidores. Y Geocast. Y diseño distribuido. Y muchas otras cosas. Depende completamente de qué escala estamos hablando.
El servidor web más simple que probablemente conozcas es el enrutador que estás utilizando, por cierto. Todos ellos ejecutan un servidor web con fines de configuración, alojados en un Linux (que está haciendo todo el trabajo de DHCP y NAT).
Redes:
Que tiene un recorrido de otras redes - incluyendo cualquier parte de Internet - ahora que es una historia totalmente diferente y una parte aún más difícil que la programación de la aplicación. Entre el NAT de su enrutador y el de NAT de portadora, esto se volvió realmente difícil.
fuente
Si tiene a mano cualquier tipo de computadora (PC, computadora portátil, teléfono inteligente, raspberryPI ...) con Python instalado, simplemente escriba:
O si tiene instalado Node.js:
¡Felicidades, tienes un servidor web!
fuente