Nginx의 로그 포맷은 아래와 같은 형식이다.
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
위 형식에서 $http_x_forwarded_for 설정도 추가되어 있지만 실제 로그에서 XFF 공인 IP가 안 찍힌다면 Directives 를 확인해봐야 한다.
아래와 같이 로그 포맷이 main으로 명시해 두었을 경우 엑세스로그 Directives도 main으로 설정한다.
이 경우 access_log {경로} main; 로 기재하면 된다.
nginx.conf 파일을 수정하고 나서 실제 적용하려면 systemctl nginx restart를 하거나 systemctl nginx reload를 반드시 해야 한다.
두 명령어 간 차이를 모른다면 잠시 짚고 넘어가겠다.
restart VS reload
- restart : nginx를 중단 후 재기동 하기 때문에 서비스 순단이 발생한다.
- reload : 설정 파일을 다시 불러오는 과정에서 자식 프로세스를 새로 만들고, nginx는 멈추지 않는다.
서비스 순단을 최소화 하기 위해 systemctl nginx restart를 진행하였다.
그 결과 로그 포맷 순서대로 엑세스 로그가 찍히게 되었다.
Nginx의 로그 포맷은 아래와 같은 형식이다.
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
위 형식에서 $http_x_forwarded_for 설정도 추가되어 있지만 실제 로그에서 XFF 공인 IP가 안 찍힌다면 Directives 를 확인해봐야 한다.
아래와 같이 로그 포맷이 main으로 명시해 두었을 경우 엑세스로그 Directives도 main으로 설정한다.
이 경우 access_log {경로} main; 로 기재하면 된다.
nginx.conf 파일을 수정하고 나서 실제 적용하려면 systemctl nginx restart를 하거나 systemctl nginx reload를 반드시 해야 한다.
두 명령어 간 차이를 모른다면 잠시 짚고 넘어가겠다.
restart VS reload
- restart : nginx를 중단 후 재기동 하기 때문에 서비스 순단이 발생한다.
- reload : 설정 파일을 다시 불러오는 과정에서 자식 프로세스를 새로 만들고, nginx는 멈추지 않는다.
다시 돌아가서, 서비스 순단을 최소화 하기 위해 systemctl nginx restart를 진행하였다.
그 결과 로그 포맷 순서대로 엑세스 로그가 찍히게 되었다.
'OPS' 카테고리의 다른 글
[Nodejs] Ubuntu 22.04에서 특정 버전의 NodeJS와 NPM 설치 (0) | 2024.03.11 |
---|---|
[CodeDeploy] EC2에 code-deploy agent 설치 (0) | 2024.03.11 |
[EBS] Data 볼륨 마운트 (0) | 2024.03.07 |
[EKS] 실행 중인 pod 중지 (0) | 2024.03.07 |
[Route53] 다중 Account 환경에서 Route53 private hosted-zone 사용하는 경우 (0) | 2023.10.26 |