FastCGI#
El módulo permite pasar solicitudes a un servidor FastCGI. Hace que las conexiones salientes a un servidor FastCGI se originen desde la dirección IP local especificada con un puerto opcional. El valor del parámetro puede contener variables. El valor especial El parámetro Para que este parámetro funcione,
los procesos de trabajo de Angie generalmente necesitan ejecutarse
con privilegios de superusuario.
En Linux, esto no es necesario:
si se especifica el parámetro Nota La tabla de enrutamiento del kernel también debe configurarse
para interceptar el tráfico de red desde el servidor FastCGI. Predeterminado http, server, location Establece el tamaño del búfer utilizado para leer la primera parte de la respuesta recibida del servidor FastCGI. Esta parte generalmente contiene una pequeña cabecera de respuesta. Por defecto, el tamaño del búfer es igual a una página de memoria. Esto es 4K u 8K, dependiendo de la plataforma. Sin embargo, puede hacerse más pequeño. Habilita o deshabilita el almacenamiento en búfer de las respuestas del servidor FastCGI. Angie recibe una respuesta del servidor FastCGI tan pronto como sea posible, guardándola en los búferes establecidos por las directivas fastcgi_buffer_size y fastcgi_buffers. Si toda la respuesta no cabe en la memoria, una parte de ella puede guardarse en un archivo temporal en el disco. La escritura en archivos temporales está controlada por las directivas fastcgi_max_temp_file_size y fastcgi_temp_file_write_size. la respuesta se pasa al cliente de forma sincrónica, inmediatamente a medida que se recibe. Angie no intentará leer toda la respuesta del servidor FastCGI. El tamaño máximo de los datos que Angie puede recibir del servidor a la vez está establecido por la directiva fastcgi_buffer_size. El almacenamiento en búfer también puede habilitarse o deshabilitarse pasando "yes" o "no" en el campo de cabecera de respuesta Predeterminado http, server, location Establece el número y tamaño de los búferes utilizados para leer una respuesta del servidor FastCGI, para una sola conexión. Por defecto, el tamaño del búfer es igual a una página de memoria. Esto es 4K u 8K, dependiendo de la plataforma. Predeterminado http, server, location Cuando el almacenamiento en búfer de respuestas del servidor FastCGI está habilitado, limita el tamaño total de búferes que pueden estar ocupados enviando una respuesta al cliente mientras la respuesta aún no se ha leído completamente. Mientras tanto, el resto de los búferes pueden usarse para leer la respuesta y, si es necesario, almacenar parte de la respuesta en un archivo temporal. Por defecto, el tamaño está limitado por el tamaño de dos búferes establecidos por las directivas fastcgi_buffer_size y fastcgi_buffers. Define una zona de memoria compartida utilizada para el almacenamiento en caché. La misma zona puede ser utilizada en varios lugares. El valor del parámetro puede contener variables. El parámetro Predeterminado http, server, location Permite iniciar una subpetición en segundo plano para actualizar un elemento de caché caducado, mientras que se devuelve al cliente una respuesta obsoleta almacenada en caché. Tenga en cuenta que es necesario permitir el uso de una respuesta en caché obsoleta cuando se está actualizando. Define las condiciones bajo las cuales la respuesta no se tomará de la caché. Si al menos un valor de los parámetros de cadena no está vacío y no es igual a "0" entonces la respuesta no se tomará de la caché: Puede utilizarse junto con la directiva fastcgi_no_cache. Define una clave para el almacenamiento en caché, por ejemplo Predeterminado http, server, location Cuando está habilitado, solo se permitirá que una solicitud a la vez rellene un nuevo elemento de caché identificado según la directiva fastcgi_cache_key pasando una solicitud a un servidor FastCGI. Otras solicitudes del mismo elemento de caché esperarán a que aparezca una respuesta en la caché o a que se libere el bloqueo de caché para este elemento, hasta el tiempo establecido por la directiva fastcgi_cache_lock_timeout. Predeterminado http, server, location Si la última solicitud enviada al servidor FastCGI para rellenar una nueva entrada de caché no se ha completado en el tiempo especificado, se puede enviar otra solicitud al servidor FastCGI. Predeterminado http, server, location Establece un tiempo de espera para fastcgi_cache_lock. Cuando el tiempo expira, la solicitud se pasará al servidor FastCGI, sin embargo, la respuesta no se almacenará en caché. Establece un desplazamiento en bytes para las solicitudes de rango de bytes. Si el rango está más allá del desplazamiento, la solicitud de rango se pasará al servidor FastCGI y la respuesta no se almacenará en caché. Predeterminado http, server, location Si el método de solicitud del cliente está listado en esta directiva, entonces la respuesta se almacenará en caché. Los métodos "GET" y "HEAD" siempre se añaden a la lista, aunque se recomienda especificarlos explícitamente. Véase también la directiva fastcgi_no_cache. Predeterminado http, server, location Establece el número de peticiones después de las cuales la respuesta será almacenada en caché. Predeterminado — http, server, location Establece la ruta y otros parámetros de una caché. Los datos de la caché se almacenan en archivos. Tanto la clave como el nombre del archivo en una caché son el resultado de aplicar la función MD5 a la URL intermediada. El parámetro los nombres de archivo en una caché se verán así: Una respuesta almacenada en caché se escribe primero en un archivo temporal, y luego el archivo se renombra. Los archivos temporales y la caché pueden colocarse en diferentes sistemas de archivos. Sin embargo, tenga en cuenta que en este caso un archivo se copia a través de dos sistemas de archivos en lugar de la operación económica de renombrado. Por lo tanto, se recomienda que para cualquier ubicación dada tanto la caché como el directorio que contiene archivos temporales se coloquen en el mismo sistema de archivos. Un directorio para archivos temporales se establece en función del parámetro Si este parámetro se omite o se establece en el valor los archivos temporales se colocarán directamente en el directorio de caché. Además, todas las claves activas y la información sobre los datos se almacenan en una zona de memoria compartida, cuyo nombre y tamaño se configuran mediante el parámetro Los datos almacenados en caché que no se acceden durante el tiempo especificado por el parámetro Por defecto, Un proceso especial de administrador de caché supervisa el tamaño máximo de la caché y la cantidad mínima de espacio libre en el sistema de archivos con caché. Cuando se excede el tamaño o no hay suficiente espacio libre, elimina los datos menos utilizados recientemente. Los datos se eliminan en iteraciones. tamaño máximo de la caché cantidad mínima de espacio libre en el sistema de archivos con caché limita el número de elementos a eliminar durante una iteración Por defecto, limita la duración de una iteración Por defecto, configura una pausa entre interacciones Por defecto, Un minuto después de que Angie se inicia, se activa el proceso especial de cargador de caché. Carga información sobre datos previamente almacenados en caché en el sistema de archivos a una zona de caché. La carga también se realiza en iteraciones. número máximo de elementos de caché para cargar en una iteración Predeterminado: limita el tiempo de una iteración Predeterminado: tiempo durante el cual se mantiene una pausa entre iteraciones Predeterminado: Predeterminado http, server, location Habilita la revalidación de elementos de caché expirados utilizando solicitudes condicionales con los campos de cabecera Predeterminado http, server, location Determina en qué casos se puede utilizar una respuesta almacenada en caché obsoleta cuando se produce un error durante la comunicación con el servidor FastCGI. Los parámetros de la directiva coinciden con los parámetros de la directiva fastcgi_next_upstream. permite usar una respuesta en caché obsoleta si no se puede seleccionar un servidor FastCGI para procesar una solicitud. parámetro adicional, permite usar una respuesta en caché obsoleta si actualmente se está actualizando. Esto permite minimizar el número de accesos a los servidores FastCGI al actualizar datos en caché. El uso de una respuesta en caché obsoleta también se puede habilitar directamente en la cabecera de respuesta durante un número específico de segundos después de que la respuesta se volviera obsoleta. La extensión stale-while-revalidate del campo de cabecera La extensión stale-if-error del campo de cabecera Nota Esto tiene menor prioridad que el uso de los parámetros de la directiva. Para minimizar el número de accesos a los servidores FastCGI al poblar un nuevo elemento de caché, se puede utilizar la directiva fastcgi_cache_lock. Establece el tiempo de almacenamiento en caché para diferentes códigos de respuesta. Por ejemplo, las siguientes directivas establecen 10 minutos de almacenamiento en caché para respuestas con códigos 200 y 302 y 1 minuto para respuestas con código 404. Si solo se especifica el tiempo de almacenamiento en caché entonces solo se almacenan en caché las respuestas 200, 301 y 302. Además, se puede especificar el parámetro Nota Los parámetros de almacenamiento en caché también se pueden establecer directamente en la cabecera de respuesta. Esto tiene mayor prioridad que la configuración del tiempo de almacenamiento en caché mediante la directiva. El campo de cabecera Si la cabecera no incluye el campo Si la cabecera incluye el campo Si la cabecera incluye el campo El procesamiento de uno o más de estos campos de cabecera de respuesta puede deshabilitarse mediante la directiva fastcgi_ignore_headers. Establece una cadena para buscar en el flujo de errores de una respuesta recibida de un servidor FastCGI. Si se encuentra la cadena, se considera que el servidor FastCGI ha devuelto una respuesta no válida. Esto permite manejar errores de aplicación en Angie, por ejemplo: Predeterminado http, server, location Defines a timeout for establishing a connection with a FastCGI server. It should be noted that this timeout cannot usually exceed 75 seconds. Predeterminado http, server, location Habilita la terminación de todas las conexiones al servidor proxy después de que haya sido
eliminado del grupo o marcado como permanentemente no disponible por un proceso de reresolve o el comando API
Una conexión se termina cuando se procesa el siguiente evento de lectura o escritura para
el cliente o el servidor proxy. Establecer time habilita un tiempo de espera para la terminación de la conexión;
con Predeterminado http, server, location Habilita el soporte de rangos de bytes para respuestas tanto en caché como no almacenadas en caché del servidor FastCGI, independientemente del campo Por defecto, Angie no pasa los campos de cabecera Predeterminado http, server, location Determina si la conexión con un servidor FastCGI debe cerrarse cuando un cliente cierra la conexión sin esperar una respuesta. Deshabilita el procesamiento de ciertos campos de cabecera de respuesta del FastCGI. Los siguientes campos pueden ser ignorados: Si no se deshabilitan, el procesamiento de estos campos de cabecera tiene el siguiente efecto: Establece un nombre de archivo que se añadirá después de una URI que termina con una barra, en el valor de la variable $fastcgi_script_name. Por ejemplo, con estos ajustes y la solicitud y con la solicitud Predeterminado http, server, location Determina si las respuestas del servidor FastCGI con códigos mayores o iguales a 300 deben pasarse al cliente o ser interceptadas y redirigidas a Angie para su procesamiento con la directiva error_page. Por defecto, un servidor FastCGI cerrará una conexión justo después de enviar la respuesta. Sin embargo, cuando esta directiva se establece con el valor Limita la velocidad de lectura de la respuesta desde el servidor proxy.
La rate se especifica en bytes por segundo; se pueden usar variables. desactiva la limitación de velocidad Nota El límite se establece por petición, por lo que si Angie abre simultáneamente dos conexiones al servidor FastCGI, la velocidad total será el doble del límite especificado. La limitación solo funciona si el buffering de respuestas del servidor FastCGI está habilitado. Predeterminado http, server, location Cuando buffering de respuestas del servidor FastCGI está habilitado, y la respuesta completa no cabe en los búferes establecidos por las directivas fastcgi_buffer_size y fastcgi_buffers, una parte de la respuesta puede guardarse en un archivo temporal. Esta directiva establece el tamaño máximo del archivo temporal. El tamaño de los datos escritos en el archivo temporal de una vez se establece mediante la directiva fastcgi_temp_file_write_size. desactiva el almacenamiento en búfer de respuestas a archivos temporales Nota Esta restricción no se aplica a las respuestas que serán almacenadas en caché o guardadas en disco. Predeterminado http, server, location Especifica en qué casos una petición debe pasarse al siguiente servidor: ocurrió un error al establecer una conexión con el servidor, al pasarle una petición o al leer la cabecera de respuesta; se produjo un tiempo de espera al establecer una conexión con el servidor, al pasarle una petición o al leer la cabecera de respuesta; el servidor devolvió una respuesta vacía o no válida; el servidor devolvió una respuesta con el código 500; el servidor devolvió una respuesta con el código 503; el servidor devolvió una respuesta con el código 403; el servidor devolvió una respuesta con el código 404; el servidor devolvió una respuesta con el código 429; normalmente, las peticiones con un método no idempotente
<https://datatracker.ietf.org/doc/html/rfc7231#section-4-2-2>`_
( desactiva el paso de una petición al siguiente servidor. Nota Se debe tener en cuenta que pasar una petición al siguiente servidor solo es posible si aún no se ha enviado nada al cliente. Es decir, si ocurre un error o tiempo de espera en medio de la transferencia de una respuesta, es imposible solucionarlo. La directiva también define lo que se considera un intento fallido de comunicación con un servidor. siempre se consideran intentos fallidos, incluso si no se especifican en la directiva se consideran intentos fallidos solo si se especifican en la directiva nunca se consideran intentos fallidos El paso de una petición al siguiente servidor puede limitarse por el número de intentos y por tiempo. Predeterminado http, server, location Limits the time during which a request can be passed to the next server. turns off this limitation Predeterminado http, server, location Limits the number of possible tries for passing a request to the next server. turns off this limitation Defines conditions bajo las cuales la respuesta no se guardará en caché. Si al menos un valor de los parámetros de cadena no está vacío y no es igual a "0", entonces la respuesta no se guardará: Se puede usar junto con la directiva fastcgi_cache_bypass. Sets a parameter that should be passed to the FastCGI server. The value can contain text, variables, and their combination. These directives are inherited from the previous configuration level if and only if there are no fastcgi_param directives defined on the current level. The following example shows the minimum required settings for PHP: The SCRIPT_FILENAME parameter is used in PHP for determining the script name, and the QUERY_STRING parameter is used to pass request parameters. For scripts that process POST requests, the following three parameters are also required: If PHP was built with the If the directive is specified with Sets the address of a FastCGI server. The address can be specified as a domain name or IP address, and a port: or as a UNIX domain socket path: If a domain name resolves to several addresses, all of them will be used in a round-robin fashion. In addition, an address can be specified as a server group. Parameter value can contain variables. In this case, if an address is specified as a domain name, the name is searched among the described server groups, and, if not found, is determined using a resolver. Permits passing otherwise disabled header fields from a FastCGI server to a client. Predeterminado http, server, location Indica si el cuerpo de la solicitud original se pasa al servidor FastCGI. Véase también la directiva fastcgi_pass_request_headers. Predeterminado http, server, location Indica si los campos de cabecera de la solicitud original se pasan al servidor FastCGI. Véase también la directiva fastcgi_pass_request_body. Predeterminado http, server, location Defines a timeout for reading a response from the FastCGI server. The timeout is set only between two successive read operations, not for the transmission of the whole response. If the FastCGI server does not transmit anything within this time, the connection is closed. Predeterminado http, server, location Enables or disables buffering of a client request body. el cuerpo completo de la solicitud se lee del cliente antes de enviar la solicitud a un servidor FastCGI. el cuerpo de la solicitud se envía al servidor FastCGI inmediatamente a medida que se recibe. En este caso, la solicitud no puede pasarse al siguiente servidor, si Angie ya comenzó a enviar el cuerpo de la solicitud. Si la directiva se establece en un valor distinto de cero, Angie intentará minimizar el número de operaciones de envío en las conexiones salientes a un servidor FastCGI utilizando la bandera NOTE_LOWAT del método kqueue, o la opción de socket SO_SNDLOWAT, con el tamaño especificado. Nota Esta directiva se ignora en Linux, Solaris y Windows. Predeterminado http, server, location Sets a timeout for transmitting a request to the FastCGI server. The timeout is set only between two successive write operations, not for the transmission of the whole request. If the FastCGI server does not receive anything within this time, the connection is closed. Predeterminado http, server, location Configura el comportamiento "TCP keepalive" para las conexiones salientes a un servidor FastCGI. Por defecto, se aplican los ajustes del sistema operativo para el socket. la opción de socket SO_KEEPALIVE está activada para el socket. Define una expresión regular que captura un valor para la variable $fastcgi_path_info. La expresión regular debe tener dos capturas: la primera se convierte en un valor de la variable $fastcgi_script_name, la segunda se convierte en un valor de la variable $fastcgi_path_info. Por ejemplo, con estos ajustes y la solicitud Habilita el guardado de archivos en un disco. guarda archivos con rutas correspondientes a las directivas alias o root. desactiva el guardado de archivos Además, el nombre del archivo puede establecerse explícitamente usando una cadena con variables: La hora de modificación de los archivos se establece según el campo de cabecera de respuesta Esta directiva puede usarse para crear copias locales de archivos estáticos inmutables, por ejemplo: Predeterminado http, server, location Establece permisos de acceso para archivos y directorios recién creados, por ejemplo: Si se especifican permisos de acceso para grupo o todos, los permisos de usuario pueden omitirse: Predeterminado http, server, location Limits the size of data written to a temporary file at a time, when buffering of responses from the FastCGI server to temporary files is enabled. By default, size is limited by two buffers set by the fastcgi_buffer_size and fastcgi_buffers directives. The maximum size of a temporary file is set by the fastcgi_max_temp_file_size directive. Predeterminado http, server, location Define un directorio para almacenar archivos temporales con datos recibidos de servidores FastCGI. Se puede utilizar una jerarquía de subdirectores de hasta tres niveles debajo del directorio especificado. Por ejemplo, en la siguiente configuración un archivo temporal podría verse así: Véase también el parámetro use_temp_path de la directiva fastcgi_cache_path. Los campos de cabecera de la solicitud HTTP se pasan a un servidor FastCGI como parámetros. En aplicaciones y scripts que se ejecutan como servidores FastCGI, estos parámetros suelen estar disponibles como variables de entorno. Por ejemplo, el campo de cabecera El módulo http_fastcgi admite variables incorporadas que pueden utilizarse para establecer parámetros mediante la directiva fastcgi_param: URI de solicitud o, si un URI termina con una barra diagonal, URI de solicitud con un nombre de archivo de índice configurado por la directiva fastcgi_index añadido a él. Esta variable puede utilizarse para establecer los parámetros SCRIPT_FILENAME y PATH_TRANSLATED que se utilizan, en particular, para determinar el nombre del script en PHP. Por ejemplo, para la solicitud el parámetro SCRIPT_FILENAME será igual a Cuando se utiliza la directiva fastcgi_split_path_info, la variable $fastcgi_script_name es igual al valor del primer grupo de captura establecido por esta directiva. El valor del segundo grupo de captura establecido por la directiva fastcgi_split_path_info. Esta variable puede utilizarse para establecer el parámetro PATH_INFO.Ejemplo de configuración#
location / {
fastcgi_pass localhost:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
Directivas#
fastcgi_bind#
off
cancela el efecto de la directiva fastcgi_bind heredada del nivel de configuración anterior, lo que permite al sistema asignar automáticamente la dirección IP local y el puerto.transparent
permite que las conexiones salientes a un servidor FastCGI se originen desde una dirección IP no local, por ejemplo, desde una dirección IP real de un cliente:fastcgi_bind $remote_addr transparent;
transparent
,
los procesos de trabajo heredan la capacidad CAP_NET_RAW del proceso maestro.fastcgi_buffer_size#
fastcgi_buffer_size
size;fastcgi_buffer_size 4k|8k;
fastcgi_buffering#
on
off
X-Accel-Buffering
. Esta capacidad puede deshabilitarse usando la directiva fastcgi_ignore_headers.fastcgi_buffers#
fastcgi_buffers
number size;fastcgi_buffers 8 4k|8k;
fastcgi_busy_buffers_size#
fastcgi_busy_buffers_size
size;fastcgi_busy_buffers_size 8k|16k;
fastcgi_cache#
off
desactiva el almacenamiento en caché heredado del nivel de configuración anterior.fastcgi_cache_background_update#
fastcgi_cache_background_update
on
| off
;fastcgi_cache_background_update off;
fastcgi_cache_bypass#
fastcgi_cache_bypass $cookie_nocache $arg_nocache$arg_comment;
fastcgi_cache_bypass $http_pragma $http_authorization;
fastcgi_cache_key#
fastcgi_cache_key localhost:9000$request_uri;
fastcgi_cache_lock#
fastcgi_cache_lock
on
| off
;fastcgi_cache_lock off;
fastcgi_cache_lock_age#
fastcgi_cache_lock_age
time;fastcgi_cache_lock_age 5s;
fastcgi_cache_lock_timeout#
fastcgi_cache_lock_timeout
time;fastcgi_cache_lock_timeout 5s;
fastcgi_cache_max_range_offset#
fastcgi_cache_methods#
fastcgi_cache_methods
GET
| HEAD
| POST
...;fastcgi_cache_methods GET HEAD;
fastcgi_cache_min_uses#
fastcgi_cache_min_uses
number;fastcgi_cache_min_uses 1;
fastcgi_cache_path#
fastcgi_cache_path
path [levels=
levels] [use_temp_path=
on
| off
] keys_zone=
name:size [inactive=
time] [max_size=
size] [min_free=
size] [manager_files=
number] [manager_sleep=
time] [manager_threshold=
time] [loader_files=
number] [loader_sleep=
time] [loader_threshold=
time];levels
define los niveles de jerarquía de una caché: de 1 a 3, cada nivel acepta valores 1 o 2. Por ejemplo, en la siguiente configuraciónfastcgi_cache_path /data/angie/cache levels=1:2 keys_zone=one:10m;
/data/angie/cache/c/29/b7f54b2df7773722d382f4809d65029c
use_temp_path
.on
on
, se utilizará el directorio establecido por la directiva fastcgi_temp_path para la ubicación dada.off
keys_zone
. Una zona de un megabyte puede almacenar alrededor de 8 mil claves.inactive
se eliminan de la caché independientemente de su frescura.inactive
se establece en 10 minutos.max_size
min_free
manager_files
100
.manager_threshold
200
milisegundosmanager_sleep
50
milisegundosloader_files
100
loader_threshold
200
milisegundosloader_sleep
50
milisegundosfastcgi_cache_revalidate#
fastcgi_cache_revalidate
on
| off
;fastcgi_cache_revalidate off;
If-Modified-Since
y If-None-Match
.fastcgi_cache_use_stale#
fastcgi_cache_use_stale
error
| timeout
| invalid_header
| updating
| http_500
| http_503
| http_403
| http_429
| off
...;fastcgi_cache_use_stale off;
error
updating
Cache-Control
permite usar una respuesta en caché obsoleta si actualmente se está actualizando.Cache-Control
permite usar una respuesta en caché obsoleta en caso de error.fastcgi_cache_valid#
fastcgi_cache_valid 200 302 10m;
fastcgi_cache_valid 404 1m;
fastcgi_cache_valid 5m;
any
para almacenar en caché cualquier respuesta:fastcgi_cache_valid 200 302 10m;
fastcgi_cache_valid 301 1h;
fastcgi_cache_valid any 1m;
X-Accel-Expires
establece el tiempo de almacenamiento en caché de una respuesta en segundos. El valor cero deshabilita el almacenamiento en caché para una respuesta. Si el valor comienza con el prefijo @, establece un tiempo absoluto en segundos desde la Época, hasta el cual la respuesta puede ser almacenada en caché.X-Accel-Expires
, los parámetros de almacenamiento en caché pueden establecerse en los campos de cabecera Expires
o Cache-Control
.Set-Cookie
, dicha respuesta no se almacenará en caché.Vary
con el valor especial "*", dicha respuesta no se almacenará en caché. Si la cabecera incluye el campo Vary
con otro valor, dicha respuesta se almacenará en caché teniendo en cuenta los campos de cabecera de solicitud correspondientes.fastcgi_catch_stderr#
location /php/ {
fastcgi_pass backend:9000;
...
fastcgi_catch_stderr "PHP Fatal error";
fastcgi_next_upstream error timeout invalid_header;
}
fastcgi_connect_timeout#
fastcgi_connect_timeout
time;fastcgi_connect_timeout 60s;
fastcgi_connection_drop#
fastcgi_connection_drop
time | on
| off
;fastcgi_connection_drop off;
DELETE
.on
establecido, las conexiones se cierran inmediatamente.fastcgi_force_ranges#
fastcgi_force_ranges
on
| off
;fastcgi_force_ranges off;
Accept-Ranges
en estas respuestas.fastcgi_hide_header#
Status
y X-Accel-...
de la respuesta de un servidor FastCGI al cliente. La directiva fastcgi_hide_header
establece campos adicionales que no se pasarán. Si, por el contrario, se necesita permitir el paso de campos, se puede usar la directiva fastcgi_pass_header.fastcgi_ignore_client_abort#
fastcgi_ignore_client_abort
on
| off
;fastcgi_ignore_client_abort off;
fastcgi_ignore_headers#
X-Accel-Redirect
, X-Accel-Expires
, X-Accel-Limit-Rate
, X-Accel-Buffering
, X-Accel-Charset
, Expires
, Cache-Control
, Set-Cookie
, y Vary
.X-Accel-Expires
, Expires
, Cache-Control
, Set-Cookie
, y Vary
establecen los parámetros del almacenamiento en caché de respuestas;X-Accel-Redirect
realiza una redirección interna a la URI especificada;X-Accel-Limit-Rate
establece el límite de velocidad para la transmisión de una respuesta a un cliente;X-Accel-Buffering
habilita o deshabilita el almacenamiento en búfer de una respuesta;X-Accel-Charset
establece el conjunto de caracteres deseado de una respuesta.fastcgi_index#
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;
/page.php
, el parámetro SCRIPT_FILENAME será igual a /home/www/scripts/php/page.php
,/
, será igual a /home/www/scripts/php/index.php
.fastcgi_intercept_errors#
fastcgi_intercept_errors
on
| off
;fastcgi_intercept_errors off;
fastcgi_keep_conn#
on
, Angie instruirá al servidor FastCGI para mantener las conexiones abiertas. Esto es necesario, en particular, para que funcionen las conexiones keepalive con servidores FastCGI.fastcgi_limit_rate#
0
fastcgi_max_temp_file_size#
fastcgi_max_temp_file_size
size;fastcgi_max_temp_file_size 1024m;
0
fastcgi_next_upstream#
fastcgi_next_upstream
error
| timeout
| invalid_header
| http_500
| http_503
| http_403
| http_404
| http_429
| non_idempotent
| off
...;fastcgi_next_upstream error timeout;
error
timeout
invalid_header
http_500
http_503
http_403
http_404
http_429
non_idempotent
POST
, LOCK
, PATCH
) no se pasan al siguiente
servidor si ya se ha enviado una petición a un servidor upstream; habilitar esta
opción permite explícitamente reintentar tales peticiones;off
error
timeout
invalid_header
http_500
http_503
http_429
http_403
http_404
fastcgi_next_upstream_timeout#
fastcgi_next_upstream_timeout
time;fastcgi_next_upstream_timeout 0;
0
fastcgi_next_upstream_tries#
fastcgi_next_upstream_tries
number;fastcgi_next_upstream_tries 0;
0
fastcgi_no_cache#
fastcgi_no_cache $cookie_nocache $arg_nocache$arg_comment;
fastcgi_no_cache $http_pragma $http_authorization;
fastcgi_param#
fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
--enable-force-cgi-redirect
configuration parameter, the REDIRECT_STATUS parameter should also be passed with the value "200":fastcgi_param REDIRECT_STATUS 200;
if_not_empty
then such a parameter will be passed to the server only if its value is not empty:fastcgi_param HTTPS $https if_not_empty;
fastcgi_pass#
fastcgi_pass localhost:9000;
fastcgi_pass unix:/tmp/fastcgi.socket;
fastcgi_pass_header#
fastcgi_pass_request_body#
fastcgi_pass_request_body
on
| off
;fastcgi_pass_request_body on;
fastcgi_pass_request_headers#
fastcgi_pass_request_headers
on
| off
;fastcgi_pass_request_headers on;
fastcgi_read_timeout#
fastcgi_read_timeout
time;fastcgi_read_timeout 60s;
fastcgi_request_buffering#
fastcgi_request_buffering
on
| off
;fastcgi_request_buffering on;
on
off
fastcgi_send_lowat#
fastcgi_send_timeout#
fastcgi_send_timeout
time;fastcgi_send_timeout 60s;
fastcgi_socket_keepalive#
fastcgi_socket_keepalive
on
| off
;fastcgi_socket_keepalive off;
off
on
fastcgi_split_path_info#
location ~ ^(.+\.php)(.*)$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME /path/to/php$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
/show.php/article/0001
, el parámetro SCRIPT_FILENAME
será igual a /path/to/php/show.php
,
y el parámetro PATH_INFO
será igual a /article/0001
.fastcgi_store#
on
off
fastcgi_store /data/www$original_uri;
Last-Modified
recibido. La respuesta se escribe primero en un archivo temporal, y luego el archivo se renombra. Los archivos temporales y el almacenamiento persistente pueden colocarse en diferentes sistemas de archivos. Sin embargo, tenga en cuenta que en este caso un archivo se copia a través de dos sistemas de archivos en lugar de la operación económica de renombrado. Por lo tanto, se recomienda que para cualquier ubicación dada, tanto los archivos guardados como el directorio que contiene archivos temporales, establecido por la directiva fastcgi_temp_path, se coloquen en el mismo sistema de archivos.location /images/ {
root /data/www;
error_page 404 = /fetch$uri;
}
location /fetch/ {
internal;
fastcgi_pass backend:9000;
...
fastcgi_store on;
fastcgi_store_access user:rw group:rw all:r;
fastcgi_temp_path /data/temp;
alias /data/www/;
}
fastcgi_store_access#
fastcgi_store_access
users:permissions ...;fastcgi_store_access user:rw;
fastcgi_store_access user:rw group:rw all:r;
fastcgi_store_access group:rw all:r;
fastcgi_temp_file_write_size#
fastcgi_temp_file_write_size
size;fastcgi_temp_file_write_size 8k|16k;
fastcgi_temp_path#
fastcgi_temp_path
path [level1 [level2 [level3]]]`;fastcgi_temp_path fastcgi_temp;
(la ruta depende de la opción de compilación --http-fastcgi-temp-path
build option)fastcgi_temp_path /spool/angie/fastcgi_temp 1 2;
/spool/angie/fastcgi_temp/7/45/00000123457
Parámetros Pasados a un Servidor FastCGI#
User-Agent
se pasa como el parámetro HTTP_USER_AGENT. Además de los campos de cabecera de solicitud HTTP, se pueden pasar parámetros arbitrarios utilizando la directiva fastcgi_param.Variables Incorporadas#
$fastcgi_script_name
#/info/
con las siguientes directivasfastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;
/home/www/scripts/php/info/index.php
.$fastcgi_path_info
#