클라이언트 요청의 사용자 정의 헤더를 기록하고 싶습니다. 내 log_format에 "$http_my_header"를 추가했는데 POST 요청이 제대로 기록됩니다. 반면에 모든 GET 요청은 null 값을 기록합니다.
GET 요청 예시:
GET /pws HTTP/1.1
upgrade: websocket
connection: Upgrade
sec-websocket-key: XXXX
host: XXXX
sec-websocket-origin: XXXX
sec-websocket-version: 13
X-Plumbr-sessionId: XXXX
X-Plumbr-accountId: XXXX
X-Plumbr-build: SNAPSHOT
내 nginx log_format에 다음이 포함되어 있습니다.
"$http_x_plumbr_accountid" "$http_x_plumbr_build"
GET 요청의 레코드 헤더에 특별한 구성이 필요합니까?
답변1
이것이 얼마나 도움이 될지는 모르겠지만 가치가 있는 것은 표준 요청 변수를 통해 요청 헤더를 설정하고 올바르게 수신되고 설명되는 IIS 서버로 프록시하는 데 사용하는 작동하는 서버 블록 구성입니다. Nginx 문서를 참조하여 사용 가능한 모든 변수를 확인하고 해당 변수(또는 필요한 변수)를 활용하여 액세스 로그에 포함함으로써 동일한 작업을 수행할 수 있다고 확신합니다. 이것은 내가 사용하고 있는 서버 블록입니다:
server {
listen 8001;
server_name localhost;
location / {
proxy_set_header x-client-IP $remote_addr;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header host $http_host;
proxy_pass http://127.0.0.1:80/;
}
}
로그 형식을 지정하고 헤더 값을 생성 및/또는 가져오는 위치에 따라 동일한 작업이 수행됩니다. 요청 유형 논리를 사용할 수도 있습니다. GET이 제대로 작동하는 것처럼 보이고 POST가 예기치 않게 작동하는 경우 이를 확인하는 것이 좋습니다.