Nous utilisons nginx comme proxy inverse pour contrôler et consigner l'accès à une application de service Web Clojure (Java).nginx: Est-il possible de capturer les en-têtes de réponse dans le journal d'accès lors de l'utilisation de nginx en tant que proxy inverse?
Nous sommes en mesure de générer un access_log
et capturer les en-têtes entrants en utilisant nginx très bien. Notre application Clojure enregistre l'activité via log4j. Le problème est, est que nous ne pouvons pas correspondre une entrée dans le access_log
à une entrée générée par l'application.
L'application répond à l'accès en envoyant des en-têtes de réponse ainsi qu'un corps. Nous pouvons librement modifier ces en-têtes de réponse. Mon idée initiale était de générer un UUID correspondant à chaque requête de service Web et de le renvoyer à l'utilisateur dans l'en-tête de réponse X-Uuid
. Ma pensée était que je pouvais capturer cette réponse en créant une coutume log_format
:
log_format lt-custom '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" $request_time $http_x_uuid';
Il est à la recherche comme nginx peut capturer les en-têtes dans les requêtes entrantes, mais pas les réponses sortantes (je l'ai vérifié ceci en remplaçant $http_x_uuid
avec $http_content_type
).
Alors! Y at-il un moyen de lier mes access_log
enties et mes entrées log4j en capturant les en-têtes de réponse sortants en utilisant nginx? Y a-t-il un meilleur moyen? Je préfère ne pas compter sur les utilisateurs qui génèrent leurs propres UUID.
Merci beaucoup!