序章


ソースからnginxをコンパイルする方法に関する記事のフォローアップとして、このチュートリアルは、ホスト上のサーバーの名前をカスタマイズするのに役立ちます。 通常、企業はセキュリティ上の理由からサーバー名を変更します。 Webサーバーの特定のバージョンに脆弱性が見つかった場合、ハッカーはそれを複製してその動作を悪用する可能性があります。

nginxサーバーの名前をカスタマイズするには、ソースコードを変更する必要があり(このチュートリアルでは段階的にガイドします)、前の記事から再コンパイルする必要があります。

サーバーのバージョンを見つける


curl -I http://example.com/

HTTP/1.1 200 OK
Server: nginx/1.5.6 # <-- this is the version of nginx you currently use
Date: Thu, 17 Nov 2013 20:40:18 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Thu, 17 Nov 2013 20:37:02 GMT
Connection: keep-alive
ETag: "51f18c6e-264"
Accept-Ranges: bytes

Nginxサーバーの文字列を変更する


前回のチュートリアルのnginxソースディレクトリに戻ります。 「ソースコードのダウンロード」セクションの後、ソースからコンパイルする前のチュートリアルを参照してください。

cd ~/src/nginx/
vi +49 src/http/ngx_http_header_filter_module.c

行を見つける:

static char ngx_http_server_string[] = "Server: nginx" CRLF;
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;

次のように変更します。

static char ngx_http_server_string[] = "Server: the-ocean" CRLF;
static char ngx_http_server_full_string[] = "Server: the-ocean" CRLF;

新しいオプションでNginxを再コンパイルする


このガイドに従って、構成オプションを確認するか、コマンドライン履歴から検索する必要があります。

./configure ... 
make
make install

構成でのサーバーバージョンの表示を停止する


vi +19 /etc/nginx/nginx.conf

http構成の下に行を追加します。 セクションがある場合は、httpsについて繰り返します

http {
...
server_tokens off;
....

Nginxサービスを再起動します


nginxファイルが変更されたため、nginxを再起動する必要があります。

service nginx restart

結果を確認する


サーバー情報が表示されるかどうかを確認しましょう。

curl -I http://example.com/

HTTP/1.1 200 OK
Server: the-ocean
Date: Thu, 17 Nov 2013 20:50:17 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Thu, 17 Nov 2013 20:37:02 GMT
Connection: keep-alive
ETag: "51f18c6e-264"
Accept-Ranges: bytes