Cuando el front-end nginx, deje que el back-end tomcat registre la IP real

Para la arquitectura de nginx + tomcat, si la configuración de tomcat de back-end sigue siendo la predeterminada, el registro de acceso de tomcat registra la dirección IP del nginx de front-end en lugar de la IP de acceso real. Por lo tanto, debe configurar nginx y tomcat de la siguiente manera:


1) configuración de nginx

......

proxy_set_header Host $ host;

proxy_set_header X-Real-IP $ remote_addr;

proxy_set_header X-Fordered-For $ proxy_add_x_fordered_for;

......


2) configuración de Tomcat

......

        <Valve className = "org.apache.catalina.valves.AccessLogValve" directorio = "/ data / logs / tomcat"

               prefijo = "search_access" suffix = ". log"

               pattern = "% {X-FORWARDED-FOR} i% l% u% t% r% s% b% D% {User-Agent} i" resolveHosts = "false" />

......


3) efecto de registro

10.0.11.162 - - [12 / Nov / 2015: 11: 22: 11 +0800] OBTENER /elesearch-search-api/search/restaurant.json?start=0&end=1&lbs=POINT%28120.285468902%2031.5033700783%29&rt=id&tq= id: 328864 HTTP / 1.0 200102 2 solicitudes de python / 2.4.3 CPython / 2.7.5 Linux / 3.10.0-229.11.1.el7.x86_64

10.0.50.54 - - [12 / Nov / 2015: 11: 22: 11 +0800] GET /elesearch-search-api/search/restaurantv5home.json?rt=id%2Cdelivery_price&lbs=POINT%28120.387601+36.273438%29&end=500&uid= 22454922 & start = 0 & from = webapi HTTP / 1.0 200 6404 11 solicitudes de python / 2.7.0 CPython / 2.7.5 Linux / 3.10.0-229.el7.x86_64

10.0.40.91 - - [12 / Nov / 2015: 11: 22: 11 +0800] GET /elesearch-search-api/search/restaurant.json?start=0&end=1&lbs=POINT%28116.316306833%2039.9776800442%29&rt=id&tq= id: 376608 HTTP / 1.0 200119 3 solicitudes de python / 2.4.3 CPython / 2.7.5 Linux / 3.10.0-229.11.1.el7.x86_64


Ahora miramos principalmente la sección de configuración de patrones, que se usa para especificar el formato de salida del registro. El modo de formato de registro válido se puede ver en el siguiente contenido, la siguiente cadena, la información correspondiente se reemplaza por el contenido de respuesta especificado:

% A dirección IP remota

% Dirección IP local

% B: el número de bytes enviados, sin incluir el encabezado HTTP, o "-" si no se enviaron bytes

% B-el número de bytes enviados, excluyendo los encabezados HTTP

% H-nombre de host remoto

% H-solicitud de acuerdo

% L (L minúscula): nombre de usuario lógico remoto de identd (siempre devuelve'- ')

% Método de solicitud M

% P-puerto local

% Q-query string (preceda a "?" Si existe; de ​​lo contrario, es una cadena vacía

% R-el requisito de la primera línea

% S-HTTP código de estado de la respuesta

ID de sesión de% S-usuario

% T-fecha y hora en formato de registro común

% U-autenticación de usuario remoto

% U ruta de URL solicitada

% V-nombre del servidor local

% D-el tiempo (en milisegundos) para procesar la solicitud

% T-el tiempo (en segundos) para procesar la solicitud

% I (i mayúscula): el nombre del hilo de la solicitud actual


Además, puede especificar los siguientes alias para establecerlos como uno de los modos más utilizados:

común -% h% l% u% t "% r"% s% b

combinado -% h% l% u% t "% r"% s% b "% {Referer} i" "% {User-Agent} i" 


Además, también puede escribir los parámetros de consulta de la solicitud de solicitud, el valor de la variable de sesión de sesión, el valor de la cookie o el valor de la variable del contenido del encabezado de solicitud / respuesta HTTP en el archivo de registro.

Está modelado según la sintaxis de Apache:

% {XXX} i xxx representa el encabezado entrante (solicitud HTTP)

% {XXX} o xxx representa el encabezado de respuesta saliente (Http Resonse)

% {XXX} c xxx representa un nombre de cookie específico

% {XXX} r xxx representa el nombre del atributo ServletRequest

% {XXX} s xxx representa el nombre del atributo en HttpSession


Supongo que te gusta

Origin blog.51cto.com/14895198/2548044
Recomendado
Clasificación