Seleccionar el modo de funcionamiento del servidor web según la experiencia personal. Conceptos básicos de las aplicaciones web Qué se necesita para que funcione un servidor web

Si escribe http://www.site/how-web-server-work/ en la barra de direcciones de su navegador y presiona la tecla Enter, esta página de nuestro sitio web aparecerá en la pantalla.

En el nivel más básico, sucedió lo siguiente: su navegador formó una conexión con el servidor web, envió una solicitud para obtener la página web de la página y la recibió.

Ahora un poco más de detalle:

La URL consta de tres partes:

1. Protocolo (http)

2. Nombre del servidor (www.sitio)

3. Direcciones de páginas (cómo funciona el servidor web)

El navegador se pone en contacto con el servidor de nombres de dominio para traducir el nombre del sitio www.site al dirección IP, que utiliza para conectarse a la máquina del servidor. Luego, el navegador establece una conexión con el servidor web en la dirección IP especificada en el puerto 80 o cualquier otro si así lo desea (analizaremos los puertos más adelante en este artículo).

Siguiendo el protocolo HTTP, el navegador envió una solicitud al servidor, solicitando el archivo http://www.site/how-web-server-work/

tenga en cuenta que galletas También se puede enviar desde el navegador al servidor.

En respuesta, el servidor generó pagina web dinamica y devolvió el texto HTML para mostrar esta página en su navegador. Galletas También se puede enviar desde el servidor al navegador en el encabezado de la página. El navegador lee las etiquetas HTML y produce la salida de la página web en la pantalla.

Internet

Entonces, ¿qué es “Internet”? Internet está formada por cientos de millones de ordenadores conectados entre sí en Red de computadoras. Una red permite que todas las computadoras se comuniquen entre sí. Computador de casa se puede conectar a Internet usando la mayoría diferentes caminos y dispositivos: comenzando con un módem primitivo para una línea telefónica, cargando una conexión a través de red local (LAN) con el proveedor de Internet ( ISP).

Los principales proveedores de servicios de Internet admiten líneas de fibra óptica para todo un país o región. Las redes troncales están distribuidas por todo el mundo y conectadas mediante líneas de fibra óptica, cables submarinos o enlaces por satélite. Por lo tanto, cada computadora en Internet está conectada a todas las demás computadoras en Internet.

Clientes y Servidores

En general, todas las computadoras en Internet se pueden dividir en dos categorías: servidores y clientes. Las computadoras que brindan servicios (como servidores web, servidores FTP, servicios en la nube) a otras máquinas están servidores. Las máquinas que se utilizan para conectarse a estos servicios son: clientela. Cuando se conecta a Google para realizar una consulta de búsqueda o utilizar cualquiera de sus servicios, Google proporciona su computadora (posiblemente un grupo completo de computadoras poderosas) para atender su solicitud. Entonces Google proporciona el servidor. Su máquina también puede proporcionar servicios a alguien en Internet. Así, la máquina del usuario suele ser un cliente, aunque también puede convertirse en servidor si es necesario.

Un servidor puede proporcionar uno o más servicios en Internet. Por ejemplo, una computadora servidor puede tener instalado un software que le permite actuar como servidor web, servidor de correo electrónico y servidor FTP. Las computadoras cliente que se unen al servidor dirigen sus solicitudes a un software especial que se ejecuta en una computadora servidor compartida. Por ejemplo, si utiliza un navegador web en su computadora, "comunicará" con el servidor web en la computadora servidor. Su aplicación de correo electrónico “hablará” con el servidor Correo electrónico, etcétera.

Direcciones IP

Para conectar todas estas máquinas a una red, cada computadora en Internet tiene una dirección única llamada dirección IP. Una dirección IP típica se ve así:

Los cuatro números en una dirección IP se llaman octetos porque pueden tomar valores entre 0 y 255 o 2 8 valores posibles.

Cada computadora en Internet tiene su propia dirección IP única. El servidor tiene una dirección IP estática que rara vez cambia. Una computadora doméstica a menudo tiene una dirección IP asignada por el ISP cuando la máquina se conecta a ella. Esta dirección IP es única para esta sesión, pero puede ser diferente la próxima vez. De esta manera, el ISP sólo necesita una dirección IP para cada enrutador que admita, no para cada cliente.

Si está en una máquina con Windows, puede ver mucha información sobre Internet en su computadora, incluida su dirección IP actual y su nombre de host, usando el comando ipconfig. En una máquina UNIX, debe escribir búsquedan V línea de comando para mostrar la dirección IP de la máquina.

Nombres de dominio

Debido a que la mayoría de las personas tienen dificultades para recordar la secuencia de números que componen las direcciones IP, y debido a que a veces es necesario cambiar las direcciones IP, todos los servidores y sitios en Internet también tienen nombres legibles por humanos llamados nombres de dominio. Por ejemplo, www.. Esto es más fácil de recordar para la mayoría de nosotros. www.sitio que recordar 5.9.205.233

El nombre www.site en realidad consta de tres partes:

1. Nombre en la World Wide Web (www). De hecho, puedes prescindir de especificar explícitamente “www”, aunque, formalmente, será una red diferente.

2. Nombre de dominio (qriosity)

3. En la zona del dominio de nivel superior (ru)

Nombres de dominio administrar registradores de nombres de dominio. Los registradores crean nombres de dominio de nivel superior y se aseguran de que todos los nombres en la zona de nivel superior del dominio sean únicos. El registrador también proporciona información de contacto para cada nombre de dominio y lanza el servicio. quién es, indicando el propietario del dominio. El nombre de host lo crea el propietario del dominio.

Servidores de nombres de dominio

Un conjunto de servidores llamados servidores de nombres de dominio(DNS) asigna nombres legibles por humanos a direcciones IP. Estos servidores contienen bases de datos simples de nombres y direcciones IP y se distribuyen por Internet. La mayoría de las empresas individuales, proveedores de servicios de Internet y grandes universidades admiten DNS pequeños. También existen DNS centrales que utilizan datos proporcionados por los registradores de nombres de dominio.

Cuando ingresa la URL http://www..site, la pasa al servidor de nombres de dominio, el servidor devuelve la dirección IP correcta para www.site. Es posible que intervengan varios servidores de nombres para obtener la dirección IP correcta.

Entonces, repitamos lo que leímos: Internet se compone de millones de máquinas, cada una con una dirección IP única. Muchos de estos coches son servidores. Esto significa que brindan servicios a otras computadoras en Internet. Muchos de estos servidores son servidores de correo electrónico, servidores web, servidores FTP y servidores de servicios en la nube.

Puertos

Cualquier servidor pone a disposición sus servicios a través de Internet utilizando números puertos, uno para cada servicio disponible en el servidor. Por ejemplo, hay una computadora servidor que ejecuta un servidor web y un servidor FTP. El servidor web normalmente estará disponible en el puerto 80 y el servidor FTP estará disponible en el puerto 21. Los clientes se conectan al servicio en una dirección IP específica y en un puerto específico.

Cada uno de los servicios más populares está disponible en un número de puerto preconocido, pero puedes asignar tu propio número de puerto a cualquier servicio.

Si el servidor acepta conexiones en un puerto de mundo exterior, y si el firewall no protege los puertos, puede conectarse a un puerto predeterminado desde cualquier computadora en Internet y utilizar el servicio. Tenga en cuenta que no hay nada que le obligue a, por ejemplo, mantener el servidor web en el puerto 80. Si instaló su servidor y cargó el software del servidor web en él, puede colocar el servidor web en el puerto 999, o cualquier otro puerto no utilizado. . Luego, si, por ejemplo, su máquina se conoce como xxx.yyy.com, entonces podrán conectarse a ella desde la URL. http://xxx.yyy.com:999 -":999" indica claramente el número de puerto a través del cual se puede acceder a su servidor web. Si no se especifica el puerto, el navegador simplemente asume que se puede acceder al servidor web mediante el conocido puerto 80.

Protocolos

Una vez que un cliente está conectado a un servicio en un puerto determinado, accede al servicio mediante un enlace especial. protocolo. Protocolo es un conjunto de convenciones de nivel lógico que permiten a los programas intercambiar datos. Para trabajar juntos entre computadoras en Internet, se utiliza la familia de protocolos TCP/IP. El servidor web utiliza el protocolo HTTP.

Adicional: Seguridad

Puede ver en esta descripción que el servidor web es un trabajo bastante simple. software. Toma el nombre del archivo enviado mediante el comando GET, recibe el archivo y lo envía al navegador. Incluso si se tiene en cuenta todo el código para manejar puertos, un programa de servidor web simple no consta de más de 500 líneas de código. Los servidores web a gran escala son más complejos, pero en esencia también son muy simples.

La mayoría de los servidores establecen algún nivel seguridad a los procesos de servicio. La opción más sencilla es solicitar un nombre de usuario y contraseña para acceder al servidor. Los servidores más avanzados añaden seguridad adicional al establecer una conexión cifrada entre el servidor y el navegador, por lo que información confidencial(por ejemplo, números de tarjetas de crédito) se pueden enviar a través de Internet.

Esto es realmente todo lo que se necesita para un servidor web que funcione de forma estándar, páginas web estáticas. Las páginas estáticas son páginas que no cambian a menos que el propio webmaster las edite.

Además: páginas dinámicas

Qué ha pasado dinámica páginas web? Por ejemplo:

1. Cualquier libro de visitas le permite ingresar un mensaje en formato HTML y muestra las entradas nuevas y antiguas automáticamente.

2. Cualquier motor de búsqueda le permite ingresar palabras clave en un formulario de consulta HTML y luego crea dinámicamente una página basada en la búsqueda de información utilizando estas palabras clave.

En todos estos casos, el servidor web hace más que simplemente "buscar un archivo". Procesa información y genera páginas según las características específicas de las solicitudes. En casi todos los casos, el servidor web utiliza el llamado guiones- código de programa escrito en PHP, Perl, Java y otros lenguajes de programación para completar este proceso.

Las páginas de nuestro sitio web también son dinámicas, creadas por ayuda PHP utilizando bases de datos MySQL.

Servidor web (Servidor web) es un servidor responsable de recibir y procesar solicitudes (solicitudes HTTP) de los clientes a un sitio web. Los clientes suelen ser varios navegadores web. En respuesta, el servidor web emite respuestas HTTP a los clientes, en la mayoría de los casos junto con una página HTML, que puede contener todo tipo de archivos, imágenes, secuencias multimedia o cualquier otro dato.

El servidor web también realiza la función de ejecutar scripts, como CGI, JSP, ASP y PHP, que son responsables de organizar las solicitudes a servicios de red, bases de datos, acceso a archivos, reenvío de correo electrónico y otras aplicaciones de comercio electrónico.

El término "servidor web" también se aplica a los dispositivos técnicos y al software que realizan las funciones de un servidor web. Podría ser una computadora especialmente seleccionada de un grupo de computadoras personales o una estación de trabajo en la que esté instalado y ejecutándose el software de servicio.

El cliente del usuario, que es principalmente un navegador web, realiza solicitudes al servidor web para obtener recursos identificados por las URL. Los recursos son páginas HTML, contenido de medios digitales, flujos de medios, diversas imágenes, archivos de datos o cualquier otro dato requerido por el cliente. En respuesta, el servidor web envía al cliente los datos solicitados. Este intercambio se produce mediante el protocolo HTTP.

HTTP (inglés: Protocolo de transferencia de hipertexto) es un protocolo de red para la capa de aplicación de transferencia de datos. El principio fundamental del protocolo HTTP es la tecnología cliente-servidor, que garantiza la interacción entre la red y el usuario.

En el caso de una organización pequeña, un servidor web puede ser un sistema integral, que constará de: servidor HTTP, utilizado para solicitudes de páginas web; Servidor FTP – utilizado para descargar archivos a través de Internet; Servidores NNTP: proporciona acceso a grupos de noticias; Servidor SMTP: para correo electrónico.

Historia

El científico británico Tim Berners-Lee es considerado el inventor del primer servidor web. Trabajando desde 1980 en el Laboratorio Europeo de Investigación Nuclear (Conseil Européen pour la Recherche Nucléaire, CERN) como consultor de software, comenzó su trabajo de desarrollo. En Ginebra, para sus propias necesidades, desarrolló el programa Enquire, que utilizaba asociaciones aleatorias para almacenar datos y sentó las bases de la World Wide Web.

En 1989, Tim Berners-Lee, trabajando en la intranet del CERN, propuso la fundación de un proyecto global de hipertexto, que consistía en publicar documentos de hipertexto unidos mediante hipervínculos. La implementación de este proyecto, en su opinión, facilitaría a los científicos del CERN combinar, buscar e intercambiar información. Para implementar el proyecto, Tim Berners-Lee, junto con sus asistentes, inventaron los identificadores URI y URL, el protocolo HTTP y el lenguaje HTML. Todas estas tecnologías se utilizan ahora ampliamente en la Internet moderna y ya no se puede prescindir de ellas.


Como resultado de este proyecto, Berners-Lee desarrolló el primer servidor web del mundo, llamado "httpd", así como el primer navegador web de hipertexto del mundo para la computadora NeXT, llamado WorldWideWeb.

El primer navegador web se ejecutó en la plataforma NeXTSTEP, un sistema operativo multitarea orientado a objetos, y se desarrolló utilizando Interface Builder. La interfaz del navegador web era muy sencilla y casi toda la información se mostraba en formato de texto con sólo unas pocas imágenes. Además del protocolo FTP estándar, Tim Berners-Lee utilizó el nuevo protocolo HTTP que él mismo inventó. Entre 1991 y 1993, Berners-Lee perfeccionó y publicó las propiedades técnicas de sus nuevos desarrollos: URI y URL, el protocolo HTTP y el lenguaje HTML. Posteriormente, el navegador web pasó a llamarse "Nexus" para evitar confusiones con el sistema operativo en el que se desarrolló el navegador y su nombre.

El primer servidor web y el primer navegador web del mundo se ejecutaron en la computadora personal NeXTSTEP; Esta computadora se exhibe ahora en el museo CERN (Microcosmos).

Tim Berners-Lee alojó el primer sitio web del mundo en http://info.cern.ch; Este sitio ahora está archivado. El primer sitio apareció en Internet el 6 de agosto de 1991. En este sitio web se dio:

  • descripción de la World Wide Web;
  • instrucciones instalación correcta Servidor web;
  • información sobre cómo comprar un navegador web;
  • otra información técnica.

Este sitio fue también el primer directorio en línea del mundo. Berners-Lee publicó una lista de enlaces a otros sitios y la actualizó periódicamente.

El 12 de diciembre de 1991 se instaló el primer servidor web del mundo en el Stanford Linear Accelerator Center (SLAC) en Estados Unidos.

Funciones básicas y adicionales.

Todas las funciones básicas y adicionales del servidor web:

  • Recibir solicitudes de navegadores web a través del estándar HTTP utilizando protocolos de red TCP/IP;
  • Buscar y enviar archivos con hipertexto o cualquier documento al navegador a través de HTTP;
  • Servicio y procesamiento de solicitudes, tales como: mailto, FTP, Telnet, etc.;
  • Lanzar programas de aplicación en un servidor web con posterior transferencia y devolución de parámetros de procesamiento a través del estándar de interfaz CGI;
  • Operación y mantenimiento de mapas de imágenes de navegación (Mapa de imágenes);
  • Administración y gestión operativa del servidor;
  • Autorización de usuarios y su autenticación;
  • Mantener un registro de las solicitudes de los usuarios a diversos recursos;
  • Operación automatizada de páginas web;
  • Soporte para páginas que se generan dinámicamente;
  • Soporte para el protocolo HTTPS para conexiones seguras con clientes.

Descripción del servidor web

Los navegadores web se comunican con los servidores web mediante el Protocolo de transferencia de hipertexto (HTTP). Es un protocolo simple de solicitud y respuesta para enviar información utilizando el protocolo TCP/IP. El servidor web recibe la solicitud, detecta el archivo, lo envía al navegador y luego cierra la conexión. La información gráfica presente en la página se procesa de la misma manera. A continuación, es el turno del navegador web de mostrar en el monitor del usuario el documento HTML descargado de Internet.

Además de las páginas HTML y los gráficos, los servidores web pueden almacenar cualquier archivo, incluidos documentos de texto, documentos de procesador de textos, archivos de vídeo e información de audio. Hoy en día, si no se tienen en cuenta los cuestionarios que rellenan los usuarios, la mayor parte del tráfico web se transmite en una dirección: los navegadores leen archivos del servidor web. Pero esto cambiará con la adopción generalizada del método PUT descrito en el borrador HTTP 1.1, que permite escribir archivos en el servidor web. Hoy en día, el método PUT lo utilizan principalmente los usuarios que crean páginas web, pero en el futuro también puede ser útil para que otros usuarios proporcionen comentarios a los centros de información. Las solicitudes PUT son mucho más simples que la carga POST normal de archivos a un servidor web.

En el servidor web también realizan su trabajo varias aplicaciones, las más populares son los motores de búsqueda y las herramientas para comunicarse con bases de datos. Los estándares utilizados para desarrollar estas aplicaciones incluyen Common Gateway Interface (CGI), lenguajes de programación JavaScript y programación java y VisualBasic. Además del estándar CGI, algunas empresas de servidores web han creado interfaces de programación de aplicaciones (API), como la API del servidor Netscape y la API del servidor Internet, que fueron creadas por Microsoft y Process Software AG. Estas interfaces permiten a los desarrolladores acceder directamente a funciones específicas del servidor web. Algunos servidores web proporcionan middleware para conectarse a bases de datos, lo que puede requerir conocimientos de programación avanzados para funcionar.

Las funciones de búsqueda básicas ayudan a los usuarios a ordenar la información que necesitan y las utilidades de bases de datos brindan a los usuarios del navegador web acceso a esa información.

Descripción general del servidor web

Los criterios para elegir un servidor web pueden incluir diferentes características: instalación, configuración, gestión del servidor, administración, gestión de la información alojada en el servidor, protección de esta información, control de acceso, funciones de desarrollo de aplicaciones y rendimiento.

La mayoría de los servidores web son fáciles y rápidos de instalar.

La parte más difícil del proceso de instalación es configurar varios nombres de dominio en uno. dispositivo físico o lo que es lo mismo la organización de servidores virtuales.

Los servidores web cuentan con herramientas para gestionar el módulo de información que caracteriza la organización general del sitio web, y también cuentan con herramientas para verificar la corrección de los enlaces de hipertexto internos y externos. El paquete LiveWire de Netscape Communications, que se envía con Novell Open Enterprise Server (OES) y está disponible opcionalmente con FastTrack Server, tiene una utilidad de administración de host que enumera todos los enlaces de una página seleccionada. Esta utilidad también proporciona una lista general de todas las conexiones incorrectas que detecta. WebView de O'Reilly & Associates tiene la misma funcionalidad y puede mostrar un árbol de archivos detallado con todos los enlaces no válidos resaltados en rojo.

También existen herramientas básicas para la gestión de contenidos. Los administradores web deben elegir dónde almacenar los archivos y cómo accederán a ellos los usuarios que accedan al servidor web. Esto requiere un mapeo entre las URL lógicas y los directorios de archivos físicos. Cada software realiza esta operación a su manera.

Con la creciente popularidad de los servidores web y su creciente uso en intranets, aumenta la actividad comercial en Internet, por lo que aumenta la importancia de proteger la información. La mayoría de las veces, los sistemas de seguridad de los servidores web son excesivos o insuficientes para las intranets actuales. Si es necesario restringir el acceso a cierta información dentro de la empresa, entonces existe la opción entre usar contraseñas no cifradas que se transmiten a través de canales de comunicación o usar protocolo SSL(Inglés: Secure Sockets Layer) es un método complejo y lento que se utiliza para cifrar contraseñas y datos.

Para organizar el trabajo de los usuarios individuales y sus grupos se puede utilizar aplicaciones internas servidor o ciertas funciones del sistema operativo. Para organizar el trabajo de los usuarios individuales y sus grupos, se pueden utilizar aplicaciones de servidor interno o determinadas funciones del sistema operativo. El servicio por lotes de Microsoft IIS proporciona soporte para el sistema operativo de red subyacente Windows NT.

Servidor web NetWare de Novell, Inc. Totalmente integrado con servicios de directorio de direcciones (NetWare Directory Services, NDS). Es conveniente gestionar usuarios desde un centro común, pero puede suponer un riesgo para la seguridad. Las contraseñas se distribuyen sin cifrar a través de los canales de comunicación y, si son interceptadas, no solo está en riesgo el servidor web, sino también la seguridad de todo el sistema operativo de la red.

El desarrollo de aplicaciones es una de las funciones principales de un servidor web. El entorno de desarrollo de aplicaciones y las herramientas de conectividad de bases de datos son muy importantes para ampliar las capacidades del servidor web, ya que el desarrollo de aplicaciones depende de diversos detalles idiosincrásicos de la interfaz de programación de aplicaciones (API), así como de las características de los lenguajes de programación o del preferencias individuales de los programadores.

Los servidores web pueden servir a una variedad de sistemas, desde la intranet de una pequeña empresa hasta grandes centros de información web utilizados por millones de personas.

Para intranets corporativas pequeñas, el mejor paquete a utilizar es Internet Information Server (IIS), creado y distribuido por Microsoft. IIS tiene una instalación bastante simple y configuraciones simples configuraciones. Este paquete de servidor web está bien integrado con los controles de acceso, la herramienta de monitoreo del sistema Performance Monitor y el Visor de eventos. El servidor web IIS también proporciona varias herramientas para transferir dinámicamente información desde bases de datos. IIS es muy rápido. Los componentes de IIS admiten protocolos como: HTTP, HTTPS, FTP, NNTP, SMTP, POP3.

Para facilitar la creación de centros de información web, la mayoría de los servidores web vienen con utilidades y herramientas para administrar contenido. Además de los editores HTML y los conversores de formatos de documentos, las herramientas más útiles son los controles de URL, que garantizan que todos los enlaces de hipertexto de su sitio web funcionen.

Cualquier computadora personal que esté conectada a Internet se puede convertir en un servidor web si le instala un software de servidor especial.

Los servidores web más comunes son Apache (Apache Software Foundation), IIS (Microsoft) y el servidor iPlanet (de Sun Microsystems y Netscape Communications Corporation). Ahora en el mercado de software de servidor web existe una gran selección de productos, tanto comerciales como gratuitos.

Uno de los servidores web más comunes es Apache de Apache Software Foundation. Se estima que se utiliza en el 65% de todos los servidores web del mundo. Una de las principales ventajas del software Apache es que su distribución es gratuita. Los desarrolladores corrigen periódicamente los errores encontrados y brindan una buena asistencia al usuario. Este servidor web admite una gran cantidad de módulos, utilidades y complementos. Dado que Apache se desarrolló desde el principio como software para administradores y usuarios avanzados, la desventaja es que es difícil de configurar y mantener para webmasters sin experiencia.

El siguiente en popularidad es el servidor web IIS de Microsoft. Según Netcraft, el servidor web IIS representa el 12,46% del número total de servidores web. Este producto forma parte de la familia de software de servidor Windows NT. Sus principales ventajas son la estabilidad, la alta velocidad y la posibilidad de conectar módulos adicionales. Microsoft se esfuerza por garantizar que cualquier usuario pueda utilizar sus productos sin la ayuda de especialistas si necesita resolver problemas estándar. Por tanto, IIS es muy fácil de instalar, configurar y mantener. El servidor web admite la tecnología .NET, que recientemente ha ido ganando popularidad entre desarrolladores y usuarios profesionales. Estos beneficios llevan el servidor web IIS al siguiente nivel y puede esperar que su uso aumente.

Otros servidores web famosos:

  • nginx es un servidor web gratuito y un servidor proxy de correo desarrollado por Igor Sysoev. Servidor simple, rápido y confiable. Funciona en Linux y otros sistemas similares a Unix sistemas operativos, así como en Windows. Popular en los principales sitios web;
  • luztpd- servidor web gratuito. Desarrollado por Jan Kneschke. Servidor web rápido y seguro. Funciona en Linux y otros sistemas operativos similares a Unix, así como en Windows;
  • Servidor web de Google- un servidor web basado en Apache y utilizado por Google para organizar su infraestructura web;
  • Resina- un servidor web gratuito y un servidor de aplicaciones para Java. Desarrollado por Caucho Technology Inc.;
  • Cherokee- un servidor web gratuito que se controla únicamente a través de la interfaz web. Escrito en el lenguaje de programación C;
  • Enraizamiento- un servidor web escrito en el lenguaje de programación Java. Funciona en Linux y Windows;
  • THTTPD- un servidor web sencillo, pequeño, rápido y seguro. Desarrollado por ACME Labs Software.

Clientes del servidor web

Normalmente, el cliente es un navegador web. Pero otros dispositivos y programas también pueden acceder al servidor web:

  • Un navegador web instalado en una computadora personal de escritorio;
  • Un navegador web instalado en una PDA u otro dispositivo portátil;
  • Teléfonos móviles y teléfonos inteligentes con los que el usuario accede a los recursos del servidor web a través del protocolo WAP;
  • Diversos programas que pueden acceder al servidor web de forma independiente para actualizar u obtener otra información. Un ejemplo son varios antivirus que contactan periódicamente con el servidor web para actualizar la base de datos;
  • Diversos dispositivos digitales, así como algunos electrodomésticos.

Este artículo será de utilidad para aquellas personas que ya tienen su propio sitio web, o que están pensando en abrir uno. El artículo será especialmente interesante para los webmasters ambiciosos que sienten que el mejor momento de su proyecto está a la vuelta de la esquina y quieren prepararse para la afluencia de visitantes a la página.

Incluso aquellos que sólo sueñan con miles de usuarios en su sitio web probablemente se hayan preguntado: "¿Cuántos usuarios admitirá mi sitio web si inician sesión al mismo tiempo?" Inmediatamente recuerdo la conocida expresión "Habraeffect": el fenómeno de la falla de un sitio que no estaba preparado para numerosas transiciones después de que apareció un enlace en Internet.

Supongamos que ya existe un sitio web (o que pronto lo habrá): ¿dónde deberíamos colocarlo? ¿Debería ser un hosting clásico o un servidor VPS? Si es vps, ¿cuál y cómo configurarlo mejor? ¿O tal vez no hay ninguna diferencia y es más fácil elegir lo que es más barato? En este artículo veremos varias opciones y veremos en la práctica cuál se adapta mejor a nuestro sitio.

Experimentaremos: configuraremos diferentes modos de funcionamiento del servidor y mediremos el rendimiento. Simularemos la carga en el sitio utilizando el servicio Loaddy.com. Allí puede establecer la cantidad de usuarios, el tipo creciente de carga y el gráfico mostrará cómo reacciona el servidor ante ellos. Se cree que un usuario genera aproximadamente una solicitud al sitio en 10 segundos. Como sitio de prueba, tomemos una demostración de la tienda en línea en cms moguta. Se llenará con “productos” de prueba que se muestran en la página principal según varios criterios (es decir, al crear la página se trabaja con la base de datos, etc.). De una forma u otra, esto le permitirá comparar los modos entre sí.

Como sitio de prueba, crearemos un servidor VPS en el sistema operativo Ubuntu. Su configuración será . Supondremos que estos son los servidores. Nivel Básico creado en la mayoría de los casos para nuevos proyectos. La versión de prueba de la tienda online estará disponible en la dirección IP http://130.193.44.219/

También nos vendrá bien el hosting clásico, al que también subiremos la misma tienda online para realizar pruebas. ¡Puedes seguir nuestro camino tú mismo y realizar las mismas pruebas en tu proyecto!

Dado que en la mayoría de los casos se ofrece un panel de control junto con el vps, realizaremos los principales cambios en la configuración del mismo. En el servidor vps tenemos a nuestra disposición 3 modos de funcionamiento:

  • Apache;
  • Apache en modo CGI;
  • Nginx + php-fpm (sin Apache).
Pero primero, probémoslo en el hosting:

Alojamiento clásico y económico

Los errores aparecen cuando el número de visitantes supera las 50 personas. El hosting deja de servir contenidos, y si vamos al panel de control del hosting, podremos ver algo como lo siguiente:

Su sitio ha sido restringido en las últimas 24 horas. Los recursos de CPU son limitados para su sitio. Ha alcanzado los límites de los procesos de entrada (número de scripts PHP y CGI que se ejecutan simultáneamente, trabajos programados y sesiones de consola) 126 veces.
Bueno, por supuesto, el hosting es hosting, especialmente económico. Por supuesto, puede encontrar una tarifa que le brinde más oportunidades, pero es necesario tener todo esto en cuenta y, de alguna manera, conocer los datos exactos de las restricciones de cada proveedor de hosting.

VPS: Apache

El siguiente en la fila es nuestro VPS de prueba con modo Apache, que, por cierto, se ofrece de forma predeterminada al instalar el panel de control del ISP.

Los problemas comienzan cuando el número de usuarios supera los 90. Si iniciamos sesión en nuestro servidor vía ssh y en ese momento miramos la lista de procesos usando el comando top, ordenados usando Shift+M (por la cantidad de memoria consumida), veremos algo como esto:

Vemos que el proceso apache2 ha crecido hasta convertirse en muchos hijos y se han consumido toda la RAM de nuestro servidor vps.

Aquí debemos hacer una pequeña observación. El hecho es que para el servidor Apache, teóricamente, existe un modo que permite, en lugar de una gran cantidad de procesos secundarios para cada conexión, crear varios de los llamados subprocesos múltiples, cada uno de los cuales serviría para varias conexiones. Este modo se llama obrero, a diferencia del valor predeterminado prehorquilla. Pero instalarlo no es fácil, es imposible hacer esto en paneles como ISP, y si te quedas desconcertado e intentas hacerlo vía ssh, descubrirás que para ello no basta con apagar prefork y encender el trabajador. , también necesitas una versión segura para subprocesos de php. Y si se utilizan módulos como Zend o IonCube, también deben ser seguros para subprocesos. Y, en general, el sitio web oficial de PHP no recomienda instalar este modo.

VPS: CGI

Veamos qué sucede al usar el modo CGI. Para hacer esto, necesita permitir el uso de PHP en modo CGI en el panel de control del ISP, esto se hace en el menú “ Cuentas– usuarios – configuración para el usuario”.

Resultó ser un panorama sombrío. El servidor se niega a servir contenido incluso con más de 55 visitantes, los procesos "php" consumen toda la RAM. Luego viene un intento de restaurar la funcionalidad, pero aún así termina con casi el 100% de fallas.

VPS: Nginx + PHP-FPM

Ha llegado el momento de un modo en el que el servidor Apache no se utiliza en absoluto, en su lugar funciona Nginx y el módulo php-fpm procesa php. Si está utilizando un panel de control ISP, debe habilitar este modo para el usuario. Esto también se hace en la sección "Cuentas - Usuarios - Configuración de usuario". Este modo también debería estar disponible en la sección “Configuración – Funciones – Servidor web (www)”.

¡Exactamente lo que se necesita! Disponibilidad del 100%, mientras que la velocidad de carga y el tiempo de respuesta del servidor están en niveles aceptables, aunque aumentan al aumentar la carga. Sin embargo, ¡el servidor se las arregla!

Veamos la tabla de procesos en el momento de carga máxima en el servidor:

Vemos que todavía tenemos stock a un precio asequible. memoria de acceso aleatorio. Y los procesos secundarios de php-fpm7.0 no crecen en grandes cantidades, sino que están limitados a 5 copias, cada una de las cuales sirve para varios subprocesos.

Bueno, parece que se ha determinado el “régimen ganador”. Averigüemos cuántos visitantes simultáneos puede atender nuestro servidor en este modo. Pero antes de eso haremos un pequeño "ajuste". En primer lugar, dado que Apache no se utiliza cuando el servidor se ejecuta de esta manera, se puede desactivar por completo. Esto lo haremos en el panel de control del ISP en la sección “Sistema - Servicios”. En segundo lugar, cambiemos un poco el principio de iniciar procesos php-fpm. Por defecto es dinámico. Esto significa que los procesos secundarios permanecerán en la memoria incluso cuando no sean necesarios. Al mismo tiempo, la memoria no se libera y con el tiempo estos procesos pueden crecer más de lo que nos gustaría. Por lo tanto, se propone instalar el modo "ondemand", bajo demanda. Y establezca la cantidad de procesos secundarios y el tiempo de espera para ellos.

Para hacer esto, deberá iniciar sesión en el servidor a través de ssh y escribir estas configuraciones en la configuración archivo php. Es conveniente hacer esto en un archivo para el usuario para quien se creó el dominio en el ISP.

Generalmente se encuentra en /etc/php/7.0/fpm/pool.d

Entonces: sudo nano /etc/php/7.0/fpm/pool.d/www-root.conf

Vemos las siguientes configuraciones predeterminadas allí:

Pm = dinámico pm.start_servers = 1 pm.min_spare_servers = 1 pm.max_children = 5 pm.max_spare_servers = 5
Para que el modo bajo demanda funcione, debe reemplazar esto con:
pm = bajo demanda pm.max_children = 5 pm.process_idle_timeout = 10s
Y reinicie php-fpm con el comando

Reinicio del servicio Sudo php7.0-fpm
Después de esto, los procesos php-fpm7.0 se crearán bajo demanda (si hay una carga), el número máximo de ellos será = 5, y después de 10 segundos de inactividad el proceso se finalizará, liberando RAM.

Por si acaso, ejecutemos nuestra prueba nuevamente para asegurarnos de que toda esta actividad amateur no afectó negativamente el rendimiento del sitio:

Ahora ejecutemos Loaddy con muchos visitantes para ver cuántas conexiones puede manejar nuestro servidor:

La buena noticia es que todas las solicitudes se procesaron, aunque con un gran retraso, con una gran cantidad de ellas por segundo. El tiempo de respuesta del servidor se acerca a los 10 segundos con un número de solicitudes de más de 190. Pero recordemos el gráfico del modo apache, donde recibimos 4 segundos de respuesta del servidor ya con más de 80 usuarios, mientras que en el modo php-fpm retrasos similares Se observan con 130 solicitudes, que resaltamos específicamente con el cursor en el gráfico anterior.
Pero este es el mismo VPS.

Tabla de procesos top al final de la prueba (con 200 usuarios):

Tenga en cuenta que una vez completadas las pruebas, se liberó la memoria utilizada por pfp-fpm:

Esto significa que nuestro servidor está listo para nuevas cargas.

Es necesario recordar que el sitio opera en modo nginx+php-fpm, esto significa que apache2 no se usa en el trabajo y, como resultado, no se usa .htaccess. Esto puede parecer un inconveniente, pero es la opción más rápida disponible y los motores de búsqueda clasifican mejor los sitios que son rápidos.

Conclusión

En conclusión, un pequeño punto más: si configuró todo lo que quería en el servidor y decidió deshabilitar el panel de control del ISP, o su licencia expiró, tenga en cuenta que el proceso "básico" permanecerá pendiente. su servidor. A medida que pasan los meses, puede crecer, por lo que es mejor "matarlo" y eliminarlo de la ejecución automática y la crona.

Si desea probar el sitio usted mismo utilizando Loaddy u otros métodos, está disponible en

La industria del alojamiento web requiere al menos algunos conocimientos básicos para operar. Hay varios términos de alojamiento web que todo webmaster debe conocer. Uno de los más básicos es: Servidor web En realidad, el alojamiento web se compone de servidores web que proporcionan espacio para su sitio web. El servidor HP Micro AMD N40L es un servidor versátil que puede proporcionar una plataforma para organizar y proteger la información empresarial, permitir una comunicación eficaz con el cliente y aprovechar al máximo sus equipos y recursos de oficina existentes. El HP MicroServer es un servidor inicial rentable para empresas con menos de 10 clientes y puede llevar su empresa a nuevos niveles de productividad y eficiencia. Para obtener más información sobre el servidor HP Micro AMD N40L, siga este enlace http://vint.com.ua/product/computers/dir_3010558/dir_3010559 .

Servidor web puede significar dos cosas - computadora, que aloja el sitio web y programa, que se ejecuta en dicha computadora. Por lo tanto, el término relacionado con el servidor web tanto hardware como software . Veremos estos dos tipos uno por uno.

hardware del servidor web

El sitio web es una colección. páginas web que son archivos digitales que normalmente se escriben utilizando el lenguaje de marcado de hipertexto HTML. El sitio web estará disponible para todo el mundo todo el tiempo, para ello deberá estar almacenado ya sea en un hosting o en una computadora conectada a Internet 24/7/365. Una computadora así se llama Servidor web (tenga en cuenta que las primeras letras están en mayúsculas).

Potencialmente puedes alojar un sitio web en la computadora de tu casa, pero esto requiere mucho trabajo y monitoreo constante. Es más fácil comprar hosting web de una empresa porque hay miles de ellas que ofrecen este servicio a precios razonables. Brevemente sobre una de las mejores empresas al final del artículo. No solo puedes conseguir alojamiento web, sino también un nombre de dominio y un sitio web, ¡y es realmente barato!

Hay una serie de requisitos para un servidor informático: debe ser lo suficientemente rápido, tener una gran cantidad de RAM y disco duro con un gran volumen, pero lo más importante es tener una dirección permanente en Internet, también conocida como IP - dirección de Protocolo de Internet. Si no se encuentra la dirección IP del sitio web y funcionará desconectado- el navegador mostrará un error no puedo encontrar el sitio web.

Programas y software de servidor web

Programas Servidor web Este es un software que ejecuta un sitio web en una computadora servidor de alojamiento. Su principal objetivo: asunto páginas web; esto significa que escucha las solicitudes de los navegadores web (también conocido como clientela ) y responde devolviendo los datos necesarios. Esta interacción cliente-servidor es una parte distintiva de cómo opera un servidor web..

Existen muchos programas de servidor web. El más famoso y popular de ellos es apache, desarrollado por la Fundación Apache. Apache no sólo es gratuito, sino que también está disponible para varios sistemas operativos, incluidos Windows, Macintosh y Linux/Unix.

Aunque los términos servidor web y servidor de aplicaciones suelen usarse indistintamente para referirse a lo mismo, es decir, garantizar el correcto funcionamiento de un sitio web, no son lo mismo. Más bien, trabajan juntos para entregar contenido desde sitios web a los usuarios finales. Un servidor web puede referirse a un programa que acepta y satisface solicitudes entrantes de clientes de recursos web en todo el mundo. Atiende estas solicitudes junto con contenido opcional, que generalmente son páginas HTML, archivos de imagen, archivos de video, etc. El servidor de aplicaciones ofrece contenido dinámico a los usuarios finales que utilizan diferentes protocolos, incluido HTTP. Este artículo explica la diferencia entre los dos.

Qué es un servidor Web?

Un servidor web no es más que un programa de software diseñado para manejar solicitudes web. Acepta solicitudes entrantes en forma de contenido estático, que son básicamente componentes del sitio web, incluidas páginas HTML, gráficos y archivos de video, etc. Luego responde a las solicitudes a través de HTTP junto con contenido de datos adicional. La tarea principal de un servidor web es proporcionar contenido a la World Wide Web para que sea accesible a los usuarios finales. Puede referirse a un sistema compuesto por hardware o software, o donde se almacena el contenido web. Discurso en palabras simples, un servidor web es una computadora que entrega páginas web a medida que se solicitan. Apache es el servidor web de código abierto más popular y utilizado, desarrollado y mantenido por Apache Software Foundation.

¿Qué es un servidor de aplicaciones?

Servidor de aplicaciones es un término que a menudo se confunde con servidor web, excepto que puede utilizar diferentes estrategias para manejar las solicitudes iniciadas por el servidor web. Esto facilita el alojamiento y la entrega de aplicaciones empresariales de alta calidad. A menudo se considera una aplicación de tres niveles que consta de GUI usuario (GUI), servidor de aplicaciones y servidor de bases de datos y transacciones. Proporciona lógica empresarial a programas de aplicaciones a través de varios protocolos, incluido, entre otros, HTTP. Es un marco de software que proporciona todas las capacidades necesarias para crear y ejecutar aplicaciones empresariales y basadas en web. En lugar de ofrecer contenido estático, es más adecuado para ofrecer contenido dinámico y transferir aplicaciones de un dispositivo a otro.

Diferencia entre servidor web y servidor de aplicaciones

Conceptos básicos del servidor web y de aplicaciones

Un servidor web se refiere al hardware o software, o ambos, que ofrece contenido o servicios a los usuarios finales a través de la World Wide Web. Es más como un programa que responde a las solicitudes de red entrantes de recursos web utilizando el protocolo HTTP. También se le conoce como servidor de Internet. Por otro lado, un servidor de aplicaciones es un marco de software basado en componentes que facilita el desarrollo y la ejecución de aplicaciones web. Básicamente, es un programa de servidor de nivel medio diseñado para proporcionar lógica empresarial para programas de aplicaciones.

El servidor web está limitado únicamente a contenido HTTP, lo que significa que utiliza el protocolo HTT para almacenar, procesar y entregar contenido a los clientes. Es una computadora poderosa que hace que los sitios web sean accesibles a través de Internet y la comunicación entre el cliente y el servidor se realiza mediante HTTP. El servidor de aplicaciones no se limita a enviar contenido HTML estático; De hecho, comunica la lógica empresarial a las aplicaciones cliente mediante múltiples protocolos.

Función de servidor web y servidor de aplicaciones

El trabajo de un servidor web es aceptar y responder a las solicitudes de los usuarios que son redirigidos por los clientes HTTP de sus computadoras, que pueden ser desde un navegador web o desde aplicación movil. El objetivo principal de un servidor web es hacer que el contenido estático esté disponible para que los usuarios lo vean en los navegadores web. El trabajo de un servidor de aplicaciones es alojar y publicar aplicaciones y procesos de lógica empresarial utilizando varios protocolos diferentes. Funciona en conjunto con un servidor web.

subprocesos múltiples

El servidor web responde a solicitudes provenientes de múltiples conexiones simultáneamente, pero no puede procesar múltiples solicitudes simultáneas en paralelo. La idea de utilizar subprocesos para mejorar la velocidad de procesamiento simplemente no funciona con los servidores web. Por otro lado, los servidores de aplicaciones admiten subprocesos múltiples, así como otras características como agregación de aislamiento, agrupación, equilibrio de carga, agrupación en clústeres, etc.

Capacidad del servidor web y del servidor de aplicaciones

El servidor web se basa en programas relacionados con Internet e intranet para atender correos electrónicos y solicitudes de descarga. Archivos FTP y para crear y publicar páginas web para clientes que utilizan el protocolo HTTP. Puede usarse solo o como componente en un servidor de aplicaciones. Por otro lado, los servidores de aplicaciones pueden hacer todo lo que pueden hacer los servidores de aplicaciones y mucho más. Son más capaces de crear contenido dinámico para servir aplicaciones web y empresariales.

Servidor web vs servidor de aplicaciones: tabla comparativa

Resumen de servidor web vs. Servidor de aplicaciones

Los servidores web juegan un papel fundamental en el funcionamiento de Internet, sin el cual Internet deja de existir. En términos simples, los servidores web actúan como una puerta de enlace entre el usuario y la World Wide Web. Es un sistema diseñado para entregar contenido estático a los usuarios finales a través de Internet. Se limita a solicitar servicios a los clientes a través del protocolo HTTP únicamente. Por el contrario, los servidores de aplicaciones consumen más recursos y brindan servicios de middleware a las aplicaciones del cliente a través de varios protocolos, incluido HTTP. Es una plataforma diseñada para la instalación, operación y alojamiento de aplicaciones y servicios para usuarios finales. Aunque ambos son necesarios para el correcto funcionamiento del sitio web, son muy diferentes entre sí.


Arriba