5 tipos de esquemas de caché del búfer nginx de

  

características de almacenamiento en caché nginx que parece no escritas son simplemente no comparten, no es muy buen hábito ah.

1, uno de los más tradicionales de caché (404)

Este enfoque es nginx de error 404 a la parte de atrás, y luego devuelto por el backend proxy_store guardar la página.

Configuración:

lugar /{root /home /html /; directorio personal # expira 1d; # página de caducidad error_page 404 = 200 /traer $ request_uri; # 404 dirigido a /fetch directorio}

lugar /FETCH /{# 404 interna dirigida aquí; # no se puede acceder directamente al directorio especificado expire 1d hacia el exterior; # caducidad página de tiempo de alias /home /html /; # archivos del directorio virtual al sistema de dirección y locaion /consistente, proxy_store guarda el archivo en el back-end aguas arriba PROXY_PASS http://www.45it.com/;# dirección en este directorio, /ir a buscar al mismo tiempo es un proxy proxy_set_header Accept-Encoding ''; # make no devolver el contenido de la compresión de back-end (gzip o desinflar) el contenido después de la compresión de almacenamiento dará lugar a problemas. proxy_store sucesivamente; # especificar el archivo de proxy Nginx volvió a guardar proxy_temp_path /home /tmp; # directorio temporal, y este directorio en /home /html al mismo tiempo, una partición del disco duro
}

Antes había que prestar atención nginx se tenga permiso para /home /tmp y /home /html tiene permisos de escritura, nginx generalmente configurado para ejecutarse en Linux nadie usuario, por lo que estos dos directorios chown nadie, nadie para establecer específica del usuario Por supuesto, también puede chmod 777, pero todos los administradores de sistemas con experiencia va a recomendar que no se debe utilizar 777.

2, la memoria cache usual bis

y principios consistentes salto 404, pero menos detallado (-e!):

lugar /{root /home /html /; proxy_store sucesivamente; proxy_set_header Accept-Encoding ''; proxy_temp_path /home /tmp; si (f $ REQUEST_FILENAME!) {PROXY_PASS http://www.45it.com/;}}

se puede ver esta configuración ahorra una gran cantidad de código de 404, que es! -f determina el archivo solicitado en el sistema de archivos existe o no, no existe PROXY_PASS hasta el extremo posterior, se volvió asimismo proxy_store salvado.

dos cachés tradicionales tienen básicamente las mismas ventajas y desventajas: Una desventaja: no es compatible enlace dinámico con parámetros, tales como read.php id = 1, ya que nginx sólo para salvar el nombre del archivo, por lo que este es el único vínculo? guardado en la read.php sistema de archivos, por lo que los usuarios acceden a read.php? id = devolver resultados incorrectos cuando 2. Sin esta forma de ayuda a domicilio y http://www.45it.com/http://www.45it.com/sos/directorio secundario, debido a nginx es honesto, la solicitud se escribe en el archivo como el enlace sistema, y ​​esto es obviamente un directorio de enlaces, por lo que no pudo guardar. Estos casos tienen que escribir con el fin de reinscripción almacenados correctamente. Deficiencia 2: nginx caché interna expira y no existe un mecanismo para limpiar cualquiera de estos archivos almacenados en caché almacena de forma permanente en la máquina, si desea almacenar en caché las cosas mucho, es mantenerse concentrado durante todo el espacio de disco duro. Para ello se puede utilizar un script de shell se limpian regularmente, y puede escribir php y otro programa dinámico para hacer actualizaciones en tiempo real. 3 desventajas: solamente caché 200 código de estado devuelto por el servidor 301/302/404, etc. Por lo tanto, el código de estado se almacenan en caché no, si le sucede que tiene acceso a una gran cantidad de enlace pseudo-estática se elimina, no va a detener a los conductores de penetración la presión de carga de extremo trasero no es pequeña. Deficiencia 4: nginx no selecciona automáticamente la memoria o disco duro como medio de almacenamiento, toda la configuración, por supuesto, habrá el mecanismo de archivo de caché de nivel de sistema operativo en el sistema operativo actual, así que no hay necesidad de preocuparse demasiado sobre el disco duro de gran capacidad lecturas simultáneas problemas de rendimiento causados ​​io.

caché nginx tradicional es también sus deficiencias y diferencias en las características tales como el software de almacenamiento en caché de calamar, por lo que puede ser visto como una ventaja. En las aplicaciones de producción, se utiliza a menudo como un socio y el calamar, calamar con enlaces son a menudo incapaces de detener y nginx puedan acceder a ella se detuvo, por ejemplo :? Http: //45it.com/y http://45it.com? /en el calamar se tratará como dos enlaces, el resultado será dos veces la penetración, y nginx sólo se salvó una vez, independientemente de la relación se convierte en http://45it.com/?1 o http://45it.com/? 123, no pueden pasar a través de caché nginx, protegiendo así el anfitrión back-end.

nginx será muy honesto guardar como enlaces al sistema de archivos, para un enlace de este tipo, puede buscarla directamente estado de caché y el contenido de la memoria caché en la máquina, puede fácilmente y otros documentos el gestor de rsync usado en conjunción, es una estructura de sistema de archivos completo.

Tanto caché tradicional se puede guardar en un archivo en Linux /dev /shm, en general, hice lo mismo, por lo que puede utilizar el sistema para hacer la memoria caché, el uso de la memoria, entonces la velocidad de limpieza contenido obsoleto será mucho más rápido. Cuando se utiliza el directorio /dev /shm /tmp debe ser, además de señalar al exterior /dev /shm esta partición, si usted tiene un gran número de pequeños archivos y directorios, sino que también permite modificar el número de inodo de particiones de memoria y capacidad máxima:

mount -o size = 2500M -o nr_inodes = 480000 -o noatime, volver a montar nodiratime -o /dev /shm

el comando anterior se usa en 3G tiene una memoria en la máquina, como /dev /shm por defecto la memoria máxima es la mitad de la memoria del sistema es 1500M, este comando para ajustar la culminación 2500M, mientras que el número de i-nodo por defecto del sistema SHM probablemente no es suficiente, pero es interesante es que se puede ajustar, donde la regulación es 480000 punto conservador, pero también lo suficientemente básica.

3, basado en el almacenamiento en caché de memcached

memcached nginx por algún apoyo, pero la función no es particularmente fuerte, o de muy buen rendimiento.

lugar /mem /{if ($ uri ~ " ^ /MEM /([0-9A-Za-z _] *) $ ") {set $ memcached_key " $ 1 '';; memcached_pass 192.168 .1.2: 11211;} expira 70;}

esta configuración http://45it.com/mem/abc~~V~~aux~~singular~~3rd memcached a la clave especificada se trae este abc.

nginx Actualmente no escribe ningún mecanismo memcached, por lo que para escribir datos en memcached en el inicio de un fondo de lenguajes dinámicos se ha completado, usted puede tomar ventaja de 404-to-back dirigido a escribir datos.

4, a partir de terceros plug-ins nCache

nCache hermanos Sina desarrollaron un buen proyecto, que utiliza nginx y memcached para lograr una porción similar de características de almacenamiento en caché de calamar, que no hizo uso de este plugin la experiencia puede hacer referencia a:

http://code.google.com/p/ncache/

5, nginx recién desarrollado la función proxy_cache

del nginx-0,7 0.44 versión comenzó, apoyo nginx caché de calamar similares funciones más formales, se encuentra todavía en fase de desarrollo, el apoyo es bastante limitado, la memoria caché es establecer un vínculo con el hash MD5 codificación salvado, por lo que puede soportar cualquiera de los enlaces, que también apoya 404 /tal condición de no 200 301/302.

Configuración:

En primer lugar, una memoria caché de configuración del espacio: niveles

proxy_cache_path /ruta /a /cache = 1: 2 keys_zone = NOMBRE: 10m inactivo = 5m max_size = 2m clean_time = 1m;

tenga en cuenta que esta configuración se encuentra fuera de la etiqueta de servidor, que especifica los niveles espacio de amortiguación de hash tiene dos directorios, el primer directorio es una carta, la segunda capa es una nombres de dos letras, archivos guardados será similar /ruta /a /cache /c /29 /b7f54b2df7773722d382f4809d65029c; keys_zone un nombre para este espacio, 10m se refiere al tamaño espacial de 10 MB; longitud inactiva de 5m tampón significa predeterminados cinco minutos; MAX_SIZE medio de un solo archivo excede los 2m 2m la caché no es; clean_time designó a uno tarea de limpieza una vez que la memoria caché.

lugar /{PROXY_PASS http://www.45it.com/;

proxy_cache NOMBRE; # NOMBRE usar este keys_zone

proxy_cache_valid 200 302 1h; # 200 y 302 código de estado posea uno hora proxy_cache_valid 301 1d; # 301 código de estado para salvar el día proxy_cache_valid cualquier 1m; # salvó por un nuevo minute}

ps: apoyo estable varias versiones de la caché 0.7.44 a 0.7.51 tienen problemas de acceso algunos enlaces de forma incorrecta, por lo que era mejor no utilizar varias versiones en un entorno de producción. Bajo nginx-0.7 ahora conocida versión más estable es 0.7.39. Versión estable 0.6.36 es la reciente actualización, si no utiliza algunos de la nueva etiqueta para las nuevas características de 0.7 en la configuración, también puede utilizar la versión 0.6.36.

Copyright © Conocimiento de Windows All Rights Reserved