Optimización de nginx Servidor y Site para WordPress

nginx-optimized

Durante mucho tiempo he estado buscando una configuración optima para WordPress, hasta el momento no encuentro una perfecta, pero pasan los años y sigo optimizando las que tengo.

Hay 2 tipos de configuracion que hay que tomar en cuenta que son la del “Servidor” y la de los “Sites”, en este post te mostrare como optimizarlas y no morir en el intento (consumo de RAM y Procesador al 100%).

Primero te mostrare los .conf de ambos, luego iré explicando linea por linea el funcionamiento.

Conf del Servidor “/etc/nginx/nginx.conf”

En esta confiruacion lo unico que vamos a agregar son “Configuración Basica” y “Opcion de compresión Gzip”.

Bueno, ahora vamos a hablar del almacenamiento en caché.

El almacenamiento en caché es absolutamente crítico si te interesa la velocidad, ya que se relaciona directamente con la primera regla de webs rápidas: reduce el número de solicitudes que van y vienen del servidor.

Hay dos tipos básicos de almacenamiento en caché que hacen esto:

  1. El almacenamiento en caché en el lado del cliente reduce el número de solicitudes que se envían al servidor web.
  2. El almacenamiento en caché del lado del servidor reduce el número de solicitudes que van al backend (php, base de datos, etc.)

En este post hablaremos de ambos.

Antes de comenzar te pondre la conf completa del sitio….

Conf del Site “/etc/nginx/nginx.conf/misitio.com.conf”

Cacheo en Nginx

En algunos casos el almacenamiento en caché se realiza de manera correcta en Nginx. Este almacenamiento en caché es bastante autoexplicativo, y se ocupa de cuánto tiempo los clientes deben asumir que el contenido es bueno para (y no solicitarlo de nuevo):

Luego otro para los archivos principales (note que éste se registra, mientras que el anterior no):

Cacheo vía Fast-CGI

Ok, por lo que Pagespeed trata principalmente con la optimización y la compresión de contenido que se sirve a los usuarios para que:

1) las cosas se almacenan en caché correctamente en las máquinas de los usuarios para que no lo pida con demasiada frecuencia
2) para que la entrega real a Usuarios es más eficiente (imágenes más pequeñas, minified y JavaScript con CSS comprimido, etc).

Perfecto. Ahora vamos a configurar el otro tipo de caché (lado del servidor) utilizando PHP Fast-CGI.

Vuelve a tu archivo principal de configuración de Nginx y agrega esto allí:

Esto establece un par de cosas:

  1. La ruta de acceso a los archivos de caché
  2. El nombre de tu caché (stupidfast, por supuesto)
  3. Los tamaños de caché
  4. Información de vencimiento
  5. Lo suficientemente justo.

Ahora nos dirigiremos de nuevo a su archivo Nginx personalizado (el host virual o donde quiera que tenga su directiva de servidor:

Esto cubre el bypass de almacenamiento en caché:

Expiración y tamaños:

La línea más importante que le dice a la caché que envíe solicitudes hacia atrás a PHP si no hay entrada de caché:

Configuración adicional para la seguridad

También tengo algunas otras opciones de seguridad en mi configuración de Nginx. Aquí defino un algunas cosas que no debemos almacenar en caché:

También nos aseguraremos de que los usuarios no puedan ingresar a ciertos archivos:

También vamos a permitir sólo tres métodos:

Y vamos a asegurarnos de que los usuarios no puedan navegar por los archivos de puntos (¿esa es una palabra?):

Y aquí evitamos un poco la divulgación de información:

Extras

Bueno ya tenemos los fundamentos manejados, ahora vamos a agregar algunas opciones que pueden ser útiles.

Modificando el encabezado del site (Nginx Headers)

nginx-header-frikipe

Para modificar las opciones de encabezado que nos entrega el servidor, usaremos las siguientes opciones.

Bueno eso es todo por hoy, si en estos días encuentro alguna mejora iré actualizando este mismo post.

Gracias por Leer 🙂

(Visited 114 times, 1 visits today)