[nginx] nginx가 반환 한 서버 헤더를 어떻게 변경합니까?

버전을 숨겨서 nginx 만 표시하도록 옵션이 있지만 아무것도 숨기거나 헤더를 변경하지 않도록 숨길 수있는 방법이 있습니까?



답변

Apache와 마찬가지로 소스를 빠르게 편집하고 다시 컴파일합니다. 에서 Calomel.org :

Server : 문자열은 실행중인 http 서버 유형 및 가능한 버전을 알려주기 위해 클라이언트로 다시 전송되는 헤더입니다. 이 문자열은 Alexia 및 Netcraft와 같은 장소에서 인터넷에 존재하는 웹 서버 수와 ​​유형에 대한 통계를 수집하는 데 사용됩니다. Nginx의 저자 및 통계를 지원하려면이 문자열을 그대로 유지하는 것이 좋습니다. 그러나 보안을 위해 사람들이 실행중인 것을 알지 못하게하고 소스 코드에서이를 변경할 수 있습니다. 소스 파일 src/http/ngx_http_header_filter_module.c
을 편집하여
48 행과 49 행을보십시오. 문자열을 원하는 것으로 변경할 수 있습니다.

## vi src/http/ngx_http_header_filter_module.c (lines 48 and 49)
static char ngx_http_server_string[] = "Server: MyDomain.com" CRLF;
static char ngx_http_server_full_string[] = "Server: MyDomain.com" CRLF;

2011 년 3 월 편집 : Nginx의 표준 HttpHeadersModule 을 갈래의 HttpHeadersMoreModule로 대체하여 새로운 옵션을 지적하기 위해 아래의 Flavius를 제안 합니다. 표준 모듈을 다시 컴파일하는 것은 여전히 ​​빠른 해결 방법이며 표준 모듈을 사용하고 서버 문자열을 자주 변경하지 않는 경우에 적합합니다. 그러나 그 이상을 원한다면 HttpHeadersMoreModule은 강력한 프로젝트이며 HTTP 헤더로 모든 종류의 런타임 블랙 매직을 수행 할 수 있습니다.


답변

nginx를 사용하여 백엔드 애플리케이션을 프록시하고 백엔드가 Server:nginx를 겹쳐 쓰지 않고 자체 헤더를 알리려면 server {…}스탠자 내부로 이동하여 다음을 설정할 수 있습니다 .

proxy_pass_header Server;

그러면 nginx가 해당 헤더 만 남겨두고 백엔드가 설정 한 값을 다시 쓰지 않도록합니다.


답변

마지막 업데이트는 얼마 전에 이루어 졌으므로 우분투에서 나를 위해 일한 것은 다음과 같습니다.

sudo apt-get update
sudo apt-get install nginx-extras

그런 다음 /etc/nginx/nginx.conf에 있는 http섹션에 다음 두 줄을 추가하십시오 nginx.conf.

sudo nano /etc/nginx/nginx.conf
server_tokens off; # removed pound sign
more_set_headers 'Server: Eff_You_Script_Kiddies!';

또한로 nginx를 다시 시작하는 것을 잊지 마십시오 sudo service nginx restart.


답변

간단하게 /etc/nginx/nginx.conf를 편집하고 주석을 제거하십시오.

#server_tokens off;

http 섹션을 검색 하십시오.


답변

매우 간단합니다. 서버 섹션에 다음 줄을 추가하십시오.

server_tokens off;
more_set_headers 'Server: My Very Own Server';


답변

특별한 모듈이 있습니다 : http://wiki.nginx.org/NginxHttpHeadersMoreModule

이 모듈을 사용하면 지정한 출력 또는 입력 헤더를 추가, 설정 또는 지울 수 있습니다.

이 표준의 향상된 버전이다 헤더 가 같은 “헤더 내장”리셋 또는 소거와 같은 유틸리티를 더 제공하기 때문에 모듈 Content-Type, Content-LengthServer.

또한 more_set_headersmore_clear_headers 지시문으로 출력 헤더를 수정하는 동안 옵션을 -s사용하여 선택적 HTTP 상태 코드 기준을 지정하고 옵션을 사용하여 선택적 컨텐츠 유형 기준 을 지정할 수 있습니다 …-t


답변

Nginx Extras 설치

sudo apt-get update
sudo apt-get install nginx-extras

nginx.conf (http 섹션 아래)에 다음 두 줄을 추가하여 서버 세부 정보를 응답에서 제거 할 수 있습니다.

more_clear_headers Server;
server_tokens off;