Site is under maintenance mode. Please wait few min!
Saltar al contenido

Nombrando los contenedores de la plataforma: 3 consejos para principiantes

marzo 4, 2020

 

Introducción

En este tutorial, vamos a cubrir cómo utilizar Varnish Cache 4.0 para mejorar el rendimiento de su servidor web existente. También le mostrará una manera de agregar soporte HTTPS para barnizar, con Nginx realizar la terminación SSL. Vamos a suponer que usted ya tiene un servidor de aplicaciones web que existen, y vamos a utilizar una lámpara genérica servidor (Linux, Apache, MySQL, PHP) como punto de partida.

Varnish Cache es un proxy inverso almacenamiento en caché HTTP, o HTTP acelerador, lo que reduce el tiempo que toma para servir contenido a un usuario. La principal técnica que utiliza es el almacenamiento en caché las respuestas de un servidor web o una aplicación en la memoria, por lo que las futuras solicitudes para el mismo contenido puede ser servido sin tener que recuperarlo desde el servidor web. El rendimiento puede ser mejorado grandemente en una variedad de entornos, y es especialmente útil cuando se tiene aplicaciones web dinámicas con contenido pesado. Barniz fue construido con el almacenamiento en caché como su característica principal, pero también tiene otros usos, tales como el equilibrio de carga de proxy inverso.

En muchos casos, Barniz funciona bien con sus valores por defecto pero tenga en cuenta que debe ser afinado para mejorar el rendimiento de ciertas aplicaciones, especialmente las que usan cookies. En sintonía profundidad de barniz es fuera del alcance de este tutorial.

Requisitos previos

En este tutorial, se supone que ya tiene un servidor de aplicaciones Web que está escuchando en HTTP (puerto 80) en su dirección IP privada. Si aún no dispone de un servidor web configurado, utilice el siguiente enlace para configurar su propia pila LAMP: Cómo instalar Linux, Apache, MySQL, PHP (LAMP) pila en Ubuntu 14.04. Nos referiremos a este servidor como LAMP_VPS .

Usted tendrá que crear un nuevo Ubuntu 14.04 VPS que serán utilizados para la instalación de barniz. Crear un usuario no root con permisos de sudo, completando los pasos 1-4 en la configuración inicial del servidor de Ubuntu 14.04 guía. Nos referiremos a este servidor como Varnish_VPS .

Tenga en cuenta que el servidor de barniz va a recibir las peticiones del usuario y debe ser de tamaño adecuado para la cantidad de tráfico que espera recibir.

Nuestro objetivo

Nuestro objetivo es la creación de Varnish Cache frente a nuestro servidor de aplicaciones Web, por lo que las solicitudes se pueden servir con rapidez y eficacia. Después de que el almacenamiento en caché está configurado, le mostrará cómo agregar HTTPS apoyo a barniz, por utlizing Nginx para manejar las peticiones SSL entrantes. Después de que su configuración se ha completado, tanto el tráfico HTTP y HTTPS verá las ventajas de rendimiento de almacenamiento en caché.

Ahora que tiene los requisitos previos establecidos, y usted sabe lo que está tratando de construir, vamos a empezar!

Instalar barniz

la forma recomendada para obtener la última versión del barniz 4.0 es instalar el paquete disponible, a través del repositorio oficial.

Ubuntu 14.04 viene con apt-transporte-https, pero basta con ejecutar el siguiente comando en Varnish_VPS para estar seguro:

sudo apt-get install apt-transport-https

Ahora añadir la clave barniz GPG a apt:

curl https://repo.varnish-cache.org/ubuntu/GPG-key.txt | sudo apt-key add -

A continuación, añadir el repositorio barniz 4.0 a la lista de fuentes apt:

sudo sh -c 'echo "deb https://repo.varnish-cache.org/ubuntu/ trusty varnish-4.0" >> /etc/apt/sources.list.d/varnish-cache.list'

por último, actualizar apt-get e instalar barniz con los siguientes comandos:

sudo apt-get update
sudo apt-get install varnish

por defecto, barniz está configurado para escuchar en el puerto 6081 y espera que su servidor web para estar en el mismo servidor y escuchando en el puerto 8080. Abra un navegador y vaya al puerto 6081 de su servidor (reemplace la parte resaltada con su dirección IP pública o dominio):

http://varnish_VPS_public_IP:6081

Debido a que instalamos barniz sobre un nuevo VPS, visitando el puerto 6081 en la dirección IP pública del servidor o dominio nombre devolverá la página de error siguiente:

Esto indica que el barniz está instalado y funcionando, pero no puede encontrar el servidor web que se supone que es el almacenamiento en caché. Vamos a configurarlo para usar nuestro servidor web como un backend ahora.

Configurar barniz

En primer lugar, vamos a configurar barniz a utilizar nuestro LAMP_VPS como backend. archivo de configuración

El barniz se encuentra en /etc/varnish/default.vcl. editar Vamos ahora:

sudo vi /etc/varnish/default.vcl

Encuentre las siguientes líneas:

backend default {
.host = "127.0.0.1";
.port = "8080";
}

y cambiar los valores de host y el puerto que coincida con su dirección IP privada del servidor LAMP y el puerto de escucha, respectivamente. Tenga en cuenta que estamos asumiendo que su aplicación web está escuchando en su dirección IP privada y el puerto 80. Si éste no es el caso, modificar la configuración para que coincida con sus necesidades:

backend default {
.host = "LAMP_VPS_private_IP";
.port = "80";
}

barniz tiene una característica denominada “modo de gracia” que, cuando habilitado, instruye barniz para servir a una copia en caché de páginas solicitadas si su base de servidor web va hacia abajo y deja de estar disponible. Vamos a permitir que ahora. Encontrar el siguiente bloque sub vcl_backend_response y añada el siguiente resaltado alineándose con ella:

sub vcl_backend_response {
set beresp.ttl = 10s;
set beresp.grace = 1h;
}

Esto establece el período de gracia de páginas en caché a una hora, lo que significa barniz continuará sirviendo páginas en caché para un máximo de una hora si no puede alcanzar su servidor web para buscar una nueva copia. Esto puede ser útil si el servidor de aplicaciones se pone y se prefiere que el contenido rancio se sirve a los usuarios en lugar de una página de error (como el error 503 que hemos visto anteriormente), mientras que traer su espalda servidor web en marcha.

guarde y salga del archivo default.vcl.

vamos a querer establecer barniz para escuchar en el puerto HTTP predeterminado (80), por lo que sus usuarios podrán acceder a su sitio sin la adición de un número de puerto inusual a su URL. Esto se puede configurar en el archivo / etc / default / barniz. editar Vamos ahora:

sudo vi /etc/default/varnish

verá una gran cantidad de líneas, pero la mayoría de ellos están comentadas. Busque la siguiente línea de DAEMON_OPTS (cabe sin comentar ya):

DAEMON_OPTS="-a :6081

La opción -a se utiliza para asignar la dirección y el puerto que Barniz escuchará las peticiones sobre. el cambio Vamos a escuchar al puerto HTTP predeterminado, el puerto 80. Después de su modificación, que debe tener este aspecto:

DAEMON_OPTS="-a :80

Guardar y salir.

Ahora reinicie barniz para que los cambios tengan efecto:

sudo service varnish restart

Ahora prueba a cabo con un navegador web, visitando su servidor barniz por su dirección IP pública, en el puerto 80 (HTTP) en esta ocasión:

http://varnish_VPS_public_IP

Debe ver lo mismo que se sirve de su LAMP_VPS. En nuestro caso, es sólo una página normal Apache2 Ubuntu:

En este punto, el almacenamiento en caché barniz es nuestro servidor-aplicación con suerte va a ver los beneficios de rendimiento en la disminución del tiempo de respuesta. Si tenías un nombre de dominio que apunta a su servidor de aplicaciones existente, es posible que cambie su entrada DNS para apuntar a su barniz VPS public_IP .

Ahora que tenemos el almacenamiento en caché de configuración básica, el soporte SSL complemento nos dejó con Nginx!

SSL

con Nginx (Opcional)

barniz no soporta terminación SSL de forma nativa, por lo que vamos a instalar Nginx con el único propósito de manejar el tráfico HTTPS. Vamos a cubrir los pasos para instalar y configurar Nginx con un certificado SSL autofirmado, y revertir el tráfico de proxy a partir de una conexión HTTPS a través de HTTP barniz.

Si desea una explicación más detallada de la creación de un certificado auto-firmado con Nginx, se refieren a este enlace: SSL con Nginx para Ubuntu. Si desea probar un certificado de StartSSL, aquí es un tutorial que cubre eso.

vamos a instalar Nginx.

instalar Nginx

En Varnish_VPS , vamos a instalar Nginx con el siguiente comando apt:

sudo apt-get install nginx

Después de la instalación se haya completado, usted notará que Nginx no se está ejecutando. Esto se debe a que está configurado para escuchar en el puerto 80 por defecto, pero barniz ya está utilizando ese puerto. Esto está bien porque queremos escuchar en el puerto HTTPS predeterminado, el puerto 443.

vamos a generar el certificado SSL que vamos a utilizar.

Generar autofirmado certificado SSL

En Varnish_VPS , crear un directorio en el certificado SSL se puede colocar:

sudo mkdir /etc
ginx/ssl

Generar una clave de firma automática de 2048 bits SSL y par Certicate:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc
ginx/ssl
ginx.key -out /etc
ginx/ssl
ginx.crt

Asegúrese de que usted conjunto nombre común para que coincida con su nombre de dominio. Este certificado en particular expirará en un año.

Ahora que tenemos nuestro certificado en su lugar, configure de Let Nginx para usarlo.

Configurar Nginx

Abra la configuración del bloque servidor Nginx predeterminado para modificar:

sudo vi /etc
ginx/sites-enabled/default

Eliminar todo en el archivo y reemplazarla con la siguiente (y cambiar el server para que coincida con su nombre de dominio):

server {
listen 443 ssl;

server_name example.com;
ssl_certificate /etc
ginx/ssl
ginx.crt;
ssl_certificate_key /etc
ginx/ssl
ginx.key;

location / {
proxy_pass http://127.0.0.1:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header Host $host;
}
}

Guardar y salir. La configuración anterior tiene algunas líneas importantes que vamos a explicar con más detalle:

  • ssl_certificate: especifica SSL ubicación del certificado
  • sslcertificatekey: especifica SSL lugar clave
  • escuchar 443 SSL: configura Nginx para escuchar en el puerto 443
  • server: especifica el nombre del servidor, y debe coincidir con el nombre común de su certificado SSL
  • PROXY_PASS http://127.0.0.1:80 ;: vuelve a dirigir el tráfico a Barniz (que se ejecuta en el puerto 80 de 127.0.0.1 (es decir localhost)

las otras líneas proxy_set_header dicen Nginx a la información hacia adelante, como la dirección IP del usuario original, junto con las solicitudes de los usuarios.

Ahora vamos a empezar Nginx por lo que nuestro servidor puede manejar peticiones HTTPS.

sudo service nginx start

Ahora prueba a cabo con un navegador web , visitando el servidor de barniz por su dirección IP pública, en el puerto 443 (HTTPS) en esta ocasión:

https://varnish_VPS_public_IP

Nota: Si utiliza un certificado autofirmado, verá una advertencia diciendo algo así como “certificado de seguridad del sitio no es de confianza”. Puesto que usted sabe que acaba de crear el certificado, es seguro proceder.

Una vez más, debería ver la misma página de la aplicación como antes. La diferencia es que en realidad se está visitando el servidor Nginx, que maneja el cifrado SSL y remite la solicitud sin cifrar a barniz, que trata la petición como lo hace normalmente.

Configurar secundaria de web del servidor

Si el servidor web de fondo es vinculante para todas sus interfaces de red (es decir, públicos y privados interfaces de red), tendrá que modificar la configuración de su servidor web por lo que sólo está escuchando en su interfaz privada. Esto es para evitar que los usuarios accedan a su servidor web de fondo directamente a través de su dirección IP pública, que pasaría por alto su Varnish Cache.

En Apache o Nginx, esto implicaría la asignación del valor de la directivas de unirse a la dirección IP privada del servidor back-end escuchar.

Solución de problemas barniz

Si usted está teniendo problemas para conseguir barniz para servir a sus páginas correctamente, aquí hay algunos comandos que le ayudará a ver lo que está haciendo barniz detrás de las escenas.

Estadísticas

Si quieres tener una idea de lo bien que su caché está llevando a cabo, tendrá que echar un vistazo a la orden varnishstat. Ejecutarlo así:

varnishstat

le aplicarán una pantalla parecida a la siguiente:

Hay una gran variedad de estadísticas que se presentan, y mediante los botones arriba / abajo para desplazarse le mostrará una breve descripción de cada elemento. Las estadísticas cache_hit muestra cómo el número de solicitudes sirvieron con un caché resultado-desea que este número sea lo más cerca del número total de solicitudes de clientes (client_req) como sea posible.

Presione q para salir.

Registros

Si desea obtener una vista detallada de la forma de barniz está manejando cada solicitud individual, en forma de un registro de streaming, tendrá que utilizar el comando varnishlog. Ejecutarlo así:

varnishlog

Una vez que se está ejecutando, tratar de acceder a su servidor de barniz a través de un navegador web. Para cada solicitud se envía al barniz, verá una salida detallada que se puede utilizar para ayudar a solucionar y ajustar la configuración de su barniz.

Presione CTRL + C para dejar de fumar.

Conclusión

Ahora que el servidor web tiene un servidor caché de barniz en frente de ella, verá un mejor rendimiento en la mayoría de los casos. Recuerde que el barniz es muy potente y sintonizable, y puede requerir ajustes adicionales para obtener el beneficio completo de la misma.