Red de conocimiento del abogados - Preguntas y respuestas penales - ¿Qué es la arquitectura de un sitio web?

¿Qué es la arquitectura de un sitio web?

Generalmente se considera que la arquitectura del sitio web se basa en los resultados del análisis de la demanda del cliente, posicionando con precisión el grupo objetivo del sitio web, estableciendo el marco general del sitio web, planificando y diseñando las columnas del sitio web y su contenido, formulando procesos y secuencias de desarrollo del sitio web, de modo que para maximizar la asignación eficiente de recursos y el diseño de gestión. Su contenido tiene tres formas de expresión: arquitectura de programa, arquitectura de rendimiento y arquitectura de información. Los pasos se dividen principalmente en dos pasos: arquitectura dura y arquitectura blanda. La arquitectura de red es una tecnología básica esencial para el aprendizaje y desarrollo de redes modernas.

Nombre chino

Arquitectura del sitio web

En general, se cree que

se basa en los resultados del análisis de la demanda de los clientes

Planificación

Proceso y secuencia de desarrollo del sitio web

Contenido

Arquitectura del programa, arquitectura de presentación

Rápido

Navegación

p>

Ocho soluciones para arquitectura blanda

Arquitectura dura

Selección de sala de ordenadores

Al seleccionar una sala de ordenadores Según la distribución geográfica de los usuarios del sitio web, puede elegir una sala de informática de Netcom o Telecom, pero más a menudo una sala de informática de doble línea puede ser más adecuada. Cuanto más grande es la ciudad, más cara es la sala de ordenadores. Desde una perspectiva de costos, los servidores se pueden alojar en algunas ciudades pequeñas y medianas. Por ejemplo, las empresas de Beijing pueden considerar alojar servidores en Tianjin, Langfang y otros lugares. Aunque no están muy lejos, el precio será mucho más económico.

Tamaño del ancho de banda

Por lo general, el jefe nos dará algunos objetivos cuando nos paga para crear un sitio web. Por ejemplo, el sitio web debe poder soportar 654,38 millones de visitas PV por día. En este momento, necesitamos estimar cuánto ancho de banda se requiere. El cálculo del ancho de banda implica principalmente dos indicadores (tráfico máximo y tamaño de página). También podríamos hacer las suposiciones necesarias antes de calcular:

Primero, supongamos que el caudal máximo es cinco veces el caudal promedio.

Segundo: supongamos que el tamaño medio de página por acceso es de unos 100 KB.

Si las visitas de 10.000 PV se distribuyen uniformemente en un día, equivale a unas 12 visitas por segundo. Si el tamaño promedio de página por acceso es de aproximadamente 100 K bytes, entonces la suma de estos 12 accesos es de aproximadamente 1200 K bytes, con bytes en bytes y ancho de banda en bits. La relación entre ellos es 1Byte = 8bit, por lo que 1200K Byte equivale aproximadamente a 9600K bit, que son 9Mbps. De hecho, nuestro sitio web debe poder mantener un acceso normal durante los períodos de mayor tráfico, por lo que, según el pico de tráfico supuesto, la demanda real de ancho de banda debería ser de alrededor de 45 Mbps.

Por supuesto, esta conclusión se basa en los dos supuestos mencionados anteriormente. Si su situación real es diferente de estos dos supuestos, los resultados serán diferentes.

División de servidores

Veamos primero qué servidores necesitamos: servidor de imágenes, servidor de páginas, servidor de bases de datos, servidor de aplicaciones, servidor de registros, etc.

Para un sitio web con un gran número de visitas, es muy necesario separar un servidor de imágenes y un servidor de páginas. Podemos usar lighttpd para ejecutar el servidor de imágenes y apache para ejecutar el servidor de páginas. Por supuesto, también podemos elegir otra cosa. Incluso, podemos expandirnos a muchos servidores de imágenes y muchos servidores de páginas, establecer nombres de dominio relacionados, como img.domain, www.domain, y usar rutas absolutas para las rutas de imágenes en la página, como

The El servidor de la base de datos es el más importante Sí, porque lo más probable es que el cuello de botella del sitio web sea la base de datos. Generalmente, los sitios web pequeños y medianos utilizan principalmente la base de datos MySQL, pero su función de agrupación parece no haber alcanzado una etapa estable, por lo que no haré comentarios aquí. En términos generales, cuando se utiliza una base de datos MySQL, se requiere una estructura maestro-esclavo (un maestro, varios esclavos). El servidor de base de datos principal adopta la estructura de tabla innodb y el servidor de datos esclavo adopta la estructura de tabla myisam, aprovechando al máximo sus respectivas ventajas. Además, esta estructura maestro-esclavo separa las operaciones de lectura y escritura, lo que reduce la presión sobre las operaciones de lectura. Incluso podemos configurar un servidor esclavo dedicado como servidor de respaldo para facilitar la copia de seguridad.

De lo contrario, si solo tiene un servidor principal, mysqldump es básicamente inútil cuando la cantidad de datos es grande. Si copia los archivos de datos directamente, debe detener el servicio de la base de datos antes de copiar; de lo contrario, el archivo de copia de seguridad será incorrecto. Pero para muchos sitios web, incluso si el servicio de la base de datos se detiene sólo por un segundo, es inaceptable. Si hay un servidor de base de datos esclavo, al realizar una copia de seguridad de los datos, puede detener el servicio (detener el esclavo) antes de realizar la copia de seguridad y luego iniciar el servicio (inicio del esclavo). Luego, el servidor esclavo sincronizará automáticamente los datos del servidor maestro sin hacerlo. cualquier impacto. Sin embargo, la estructura maestro-esclavo también tiene un defecto fatal, es decir, la estructura maestro-esclavo solo reduce la presión de las operaciones de lectura, pero no puede reducir la presión de las operaciones de escritura.

Para adaptarse a una escala mayor, el único último recurso puede ser: dividir la base de datos horizontal/verticalmente. La llamada división horizontal de la base de datos significa guardar diferentes tablas en diferentes servidores de bases de datos. Por ejemplo, la tabla de usuarios se guarda en el servidor de bases de datos A y la tabla de artículos se guarda en el servidor de bases de datos B. Por supuesto, dicha división tiene un costo. Lo más básico es que no se pueden realizar operaciones como las uniones izquierdas. La llamada base de datos dividida verticalmente generalmente se refiere a un servidor que divide el almacenamiento de datos según el ID del usuario (user_id), etc. Por ejemplo, tenemos cinco servidores de bases de datos. Si "user_id 5 1" es igual a 1, se guardará en el servidor 1. Si es igual a 2, se guardará en el servidor 2, y así sucesivamente. Sin embargo, al igual que la partición horizontal de la base de datos, la partición vertical de la base de datos también tiene un costo. Lo más básico es que tenemos muchos problemas para realizar operaciones de resumen como contar y sumar. En resumen, la solución de servidor de base de datos generalmente adopta una solución híbrida según la situación para aprovechar al máximo las ventajas de varias soluciones. A veces, también se requiere software de terceros, como memcached, para cumplir con más requisitos de acceso.

Lo más apropiado es tener un servidor de aplicaciones dedicado para ejecutar scripts PHP, de modo que nuestro servidor de páginas solo pueda guardar páginas estáticas. Podemos configurar algunos nombres de dominio como app.domain para que el servidor de aplicaciones las distinga. desde el servidor de páginas. En cuanto al servidor de aplicaciones, prefiero usar Apache en modo prefork, usando software de almacenamiento en caché PHP como xcache si es necesario. Cuantos menos módulos se carguen, mejor. Excepto los módulos necesarios como mod_rewrite, todo lo innecesario se descarta para minimizar el consumo de memoria del proceso httpd. El contenido estático, como servidores de imágenes y servidores de páginas, se puede hacer con lighttpd o tux para aprovechar al máximo varias características.

Si las condiciones lo permiten, también es necesario un servidor de registro independiente. El enfoque general para sitios web pequeños es combinar el servidor de páginas y el servidor de registro en uno, y cron ejecutará el cálculo de registro del día anterior temprano en la mañana, cuando el tráfico sea bajo. Sin embargo, si utiliza un software de análisis de registros como awstats, incluso si archiva millones de visitantes diariamente, consumirá mucho tiempo y recursos del servidor. Por lo tanto, es beneficioso separar un servidor de registros separado y no afectará. el estado de funcionamiento del servidor oficial.

Arquitectura de software

Selección de framework

Hay muchas opciones para frameworks PHP, como CakePHP, Symfony, Zend Framework, etc. No hay una respuesta única sobre cuál se debe utilizar, depende de qué tan bien los miembros del equipo comprendan cada marco. Muchas veces, todavía puedes escribir buenos programas incluso sin utilizar un marco. Por ejemplo, se dice que Flickr está escrito utilizando una biblioteca de clases como Pear Smarty. Por lo tanto, utilizar un marco generalmente no es lo más importante. Lo importante es que tengamos una conciencia marco en el pensamiento de programación.

Lógica jerárquica