CentOSでソースからコンパイルした後にNginxサーバー名をカスタマイズする方法
序章
ソースから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