Linux

[Nginx] server_tokens - 서버 정보 명시 여부 결정

비번변경 2024. 9. 20. 13:36

개요

최근 API 서버를 구성하면서 nginx를 사용하고 있는데, response header에서 아래와 같이 서버 정보가 노출되어 잇어 삭제해달라는 요청이 있었다.

관련 설정에 대해서 적어둔다.

 

 

server_tokens

server_tokens는 오류 페이지만 Server의 Response Header에서 nginx 버전의 출력 여부를 결정한다.

server_tokens 값 설명
on nginx 버전 출력. 기본값
off nginx 버전 미출력
build nginx 버전 및 빌드 이름 출력

 

 

 

설정 방법

Ubuntu 기준으로 /etc/nginx/nginx.conf에서 값을 설정할 수 있다.

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
        worker_connections 768;
        # multi_accept on;
}

http {

        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        # 아래 설정 주석 해제
        # server_tokens off;
... 생략 ...
}

기본적으로는 주석처리 되어 있는데, 해당 부분을 주석 해제하고 서비스를 재시작하면 된다.

 

서비스 재시작

systemctl restart nginx

 

적용 확인

이제 다시 접속해보면 Response Headers에서 서버 정보가 표시되지 않는 모습을 확인할 수 있다.

 

 

 

참고 문서

https://nginx.org/en/docs/http/ngx_http_core_module.html#server_tokens

https://goodgid.github.io/Nginx-Option-Server-Tokens/