Maison  >  Article  >  Opération et maintenance  >  Quelles sont les variables intégrées de nginx ?

Quelles sont les variables intégrées de nginx ?

王林
王林avant
2023-05-26 16:16:063637parcourir

Variables intégrées nginx

Les variables intégrées sont stockées dans le module ngx_http_core_module La méthode de dénomination des variables est cohérente avec les variables du serveur Apache. En résumé, ces variables représentent le contenu des en-têtes de requête client, tels que $http_user_agent, $http_cookie, etc. Voici toutes les variables intégrées prises en charge par nginx :

$arg_name
Le nom du paramètre dans la requête, c'est-à-dire le formulaire arg_name=arg_value après "?"

# 🎜🎜# $args

Valeur du paramètre dans la requête

$binary_remote_addr

La forme binaire de l'adresse du client, la longueur fixe est de 4 octets

$ body_bytes_sent# 🎜🎜#Le nombre d'octets transmis au client, l'entête de réponse n'est pas compté ; cette variable est compatible avec le paramètre "%b" du module mod_log_config d'apache


$bytes_sent

Transmis à Le nombre d'octets du client (1.3.8, 1.2.5)


$connection

Le numéro de séquence de la connexion TCP (1.3.8, 1.2.5)#🎜 🎜#

$connection_requests
Le nombre actuel de requêtes de connexion TCP (1.3.8, 1.2.5)

$content_length
en-tête de requête "content-length" field

#🎜🎜 #$content_type

champ d'en-tête de requête "content-type"

$cookie_name

cookie name

$document_root# 🎜🎜#La racine du document de la requête en cours Répertoire ou alias


$document_uri

est la même que $uri


$host

La priorité est comme suit : nom d'hôte de la ligne de requête http > Champ d'en-tête de requête "host"> Correspond au nom du serveur demandé


$hostname

Host name


$http_name#🎜 🎜#correspond à n'importe quel champ d'en-tête de requête ; le suffixe dans le nom de la variable. La moitié du "nom" peut être remplacée par n'importe quel champ d'en-tête de requête. Par exemple, si vous avez besoin d'obtenir l'en-tête de requête http : "accepter-langue" dans la configuration. fichier, puis remplacez "-" par un trait de soulignement et les lettres majuscules par des minuscules, comme : $http_accept_lingual C'est tout.

$https
Si le mode de sécurité SSL est activé, la valeur est "on", sinon c'est une chaîne vide.

$is_args
S'il y a des paramètres dans la requête, la valeur est "?", sinon c'est une chaîne vide.

$limit_rate
est utilisé pour définir la limite de vitesse de la réponse, voir limit_rate pour plus de détails.

$msec
Horodatage Unix actuel (1.3.9, 1.2.6)

$nginx_version
nginx version

#🎜 🎜# $pid

Le pid du processus de travail

$pipe

Si la requête provient d'une communication pipe, la valeur est "p", sinon c'est "." 12, 1.2. 7)

$proxy_protocol_addr

Obtenez l'adresse client du serveur d'accès proxy. S'il s'agit d'un accès direct, la valeur est une chaîne vide. (1.5.12)

$query_string

Identique à $args

$realpath_root

Le chemin réel du répertoire racine ou de l'alias du document actuellement demandé sera be Tous les liens symboliques sont convertis en chemins réels.

$remote_addr

Adresse client

$remote_port

Port client

$remote_user

est utilisé L'utilisateur nom du service d'authentification de base http

$request

représente l'adresse de la demande du client

$request_body

Le corps de la demande du client
Cette variable Peut être utilisé localement pour transmettre le corps de la requête au serveur proxy de niveau suivant via proxy_pass, fastcgi_pass, uwsgi_pass et scgi_pass.

$request_body_file
Enregistrez le corps de la demande du client dans un fichier temporaire. Une fois le traitement du fichier terminé, ce fichier doit être supprimé. Si vous devez activer cette fonctionnalité, vous devez définir client_body_in_file_only. Si vous transmettez le fichier secondaire au serveur proxy principal, vous devez désactiver le corps de la requête, c'est-à-dire désactiver proxy_pass_request_body, désactiver fastcgi_pass_request_body, désactiver uwsgi_pass_request_body ou désactiver scgi_pass_request_body.

$request_completion
La valeur est "ok" si la requête est réussie, ou vide si la requête est incomplète ou si la requête n'est pas la dernière partie d'une requête de plage.

$request_filename

Le chemin du fichier de la demande de connexion actuelle, généré par la commande racine ou alias et la demande uri.

$request_length

La longueur de la requête (y compris l'adresse demandée, l'en-tête de la requête http et le corps de la requête) (1.3.12, 1.2.7)

$ request_method# 🎜🎜#méthode de requête http, généralement "get" ou "post"


$request_time

Le temps utilisé pour traiter les requêtes des clients (1.3.9, 1.2.6) ; Le timing commence sur le premier octet du client.


$request_uri

Cette variable est égale à l'uri d'origine contenant certains paramètres de requête client, elle ne peut pas être modifiée, veuillez consulter $uri pour changer ou réécrire l'uri, ne contient pas le nom d'hôte , par exemple : "/cnphp/test.php?arg=freemouse".


$scheme

Le protocole Web utilisé dans la requête, "http" ou "https"


$sent_http_name

Vous pouvez définir n'importe quel en-tête de réponse http champ ; variable La seconde moitié du nom "nom" peut être remplacée par n'importe quel champ d'en-tête de réponse. Si vous devez définir la longueur du contenu de l'en-tête de réponse, remplacez "-" par un trait de soulignement et les lettres majuscules par des lettres minuscules, telles que : $sent_http_content_length 4096.


$server_addr

Adresse côté serveur, il convient de noter que afin d'éviter d'accéder au noyau du système Linux, l'adresse IP doit être définie au préalable dans le fichier de configuration.


$server_name

Server name, www.cnphp.info


$server_port

Server port


$server_protocol#🎜 🎜#La version http du serveur, généralement "http/1.0" ou "http/1.1"

$status
code de réponse http (1.3.2, 1.2.2)#🎜🎜 #

$tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd, $tcpinfo_rcv_space

Informations spécifiques à la connexion TCP du client

$time_iso8601
Heure du serveur au format iso 8610 (1.3.12, 1.2.7)

$time_local
Heure du serveur (format journal) (1.3.12 , 1.2.7)

$uri
L'uri actuel dans la requête (sans paramètres de requête, les paramètres sont situés dans $args), peut être différent de la valeur de $request_uri passée par le navigateur, il peut Par redirection interne ou modification à l'aide de la directive index, $uri ne contient pas le nom d'hôte, tel que "/foo/bar.html".

Variables globales intégrées de Nginx et leurs significations

Name Version Description (La liste des variables provient du fichier ngx_http_variables)
$args 1.0.8 Paramètres dans la requête ;
$binary_remote_addr 1.0.8 Représentation binaire de l'adresse distante
$ body_bytes_sent 1.0 .8 Le nombre d'octets du corps du message envoyés
$content_length 1.0.8 "content-length" dans les informations de la demande http ;
$content_type 1.0.8 "content-type" dans les informations de la demande ;# 🎜 🎜#$document_root 1.0.8 Définit la valeur du chemin racine de la requête actuelle ;
$document_uri 1.0.8 Identique à $uri tel que /test1/test2/test.php
$host 1.0 ; . 8 requêtes Le "host" dans les informations, s'il n'y a pas de ligne host dans la requête, est égal au nom du serveur défini
$hostname 1.0.8 #$#$ Http_referr 1.0.8 Adresse de référence#🎜 🎜#$ http_user_agent 1.0.8 Informations sur le proxy client
$ http_via 1.0.8 adresse IP du dernier serveur d'accès.
$http_x_forwarded_for 1.0.8 Équivalent au chemin d'accès au réseau.
$is_args 1.0.8
$limit_rate 1.0.8 Limitation du débit de connexion ;
$nginx_version 1.0.8
$pid 1.0.8
$query_string 1.0. Numéro de port client ;
$remote_user 1.0.8 Nom d'utilisateur client, utilisé pour l'authentification
$request 1.0.8 Demande de l'utilisateur
$request_body 1.0.8 Le nom du fichier local envoyé au backend ;
$ request_completion 1.0.8
$request_filename 1.0.8 Le nom du chemin de fichier de la requête actuelle, tel que $request_filename : d:nginx/html/test1/test2/test.php
$ request_method 1.0.8 La méthode de requête, Par exemple, "get", "post", etc. 8 Le protocole utilisé, tel que http ou https, tel que rewrite^(.+)$$scheme://example.com$1 redirect;
$sent_http_cache_control 1.0.8
$sent_http_connection 1.0.8 # 🎜 🎜#$sent_http_content_length 1.0.8
$sent_http_content_type 1.0.8
$ send_http_keep_alive 1.0.8 # 🎜🎜 # $ Send_http_last_modified 1.0.8 # 🎜🎜 # $ Send_http_location 1.0.8 # 🎜🎜 # $ Send_http_trans Fer_encoding 1.0.8 # 🎜🎜 # $ Server_addr 1.0.8 Adresse du serveur, si le serveur n'est pas spécifié en utilisant l'adresse d'écoute, l'utilisation de cette variable lancera un appel système pour obtenir l'adresse (entraînant un gaspillage de ressources)
$server_name 1.0.8 Le nom du serveur où arrive la requête ; .8 Le numéro de port du serveur où arrive la requête ;
$server_protocol 1.0.8 La version du protocole demandé, "http/1.0" ou "http/1.1"
$uri 1.0.8 L'uri demandé peut être différente de la valeur d'origine, par exemple après une réorientation, etc.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer