Eu configurei um servidor proxy que encaminha solicitações de clientes para um servidor upstream que funciona bem até agora. No entanto, o problema que estou tentando resolver é forçar o servidor upstream a registrar o ID da solicitação do servidor proxy. Isso é possível? Apenas para que você saiba que a $_SERVER
variável do servidor upstream contém[HTTP_X_REQUEST_ID] => 84708dd39a6c0c91e0d1a97404b40f75
SERVIDOR PROXY
CONFIG
server {
...
add_header X-Request-ID $request_id;
proxy_set_header X-Request-ID $request_id;
location ~ ^/api/(.*) {
proxy_pass http://192.168.0.1:8080/$1$is_args$args;
}
...
}
FORMATO DE REGISTRO
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$request_id"';
REGISTRO
172.17.0.1 ...... "84708dd39a6c0c91e0d1a97404b40f75"
SERVIDOR MONTANTE
CONFIG
server {
location ~ ^/index\.php(/|$) {
fastcgi_pass php_server:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}
}
FORMATO DE REGISTRO
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$request_id"';
REGISTRO
172.20.0.1 ...... "172.17.0.1" "7376e0cead9741e7ec07a9194efc80e6"
REGISTRO ESPERADO
172.20.0.1 ...... "172.17.0.1" "84708dd39a6c0c91e0d1a97404b40f75"
Na verdade, você não deseja que o servidor upstream registre o ID da solicitação em
$request_id
. Em vez disso, você deseja que ele registre o conteúdo de um cabeçalho de solicitação HTTP chamadoX-Request-ID
.Nesse caso, você deve registrar a variável correspondente a esse cabeçalho de solicitação HTTP:
$http_x_request_id
.