Nginxのバージョン情報を表示させないようにする方法です。
動作確認は「Ubuntu 24.04 LTS」で行っています。
サーバ全体への設定
サーバ全体に「Nginx」のバージョンを非表示にする設定を行いたい場合は、「/etc/nginx/nginx.conf」のhttpディレクティブに「server_tokens off;」の設定を追加します。
設定例
「/etc/nginx/nginx.conf」のバックアップを行ってから、設定の追加を行っていきます。
$ cd /etc/nginx $ sudo cp -p nginx.conf nginx.conf_$(date "+%Y%m%d_%H%M%S") $ sudo vi nginx.conf
下記は「Ubuntu」に「Nginx」公式のリポジトリを使用してインストールした際の「/etc/nginx/nginx.conf」で、httpディレクティブ部分のみ抜粋しています。
### 省略 ###
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
server_tokens off; # 追加した設定
include /etc/nginx/conf.d/*.conf;
}
個別に設定したい場合の設定
バーチャルホストごとにバージョンの表示と非表示を好きなように設定したい場合は、「/etc/nginx/conf.d/xxx.conf」(バーチャルホストの設定ファイル)のserverディレクティブに「server_tokens off;」の設定を追加します。
$ cd /etc/nginx/conf.d/ $ sudo cp -p xxx.conf xxx.conf_$(date "+%Y%m%d_%H%M%S") $ sudo vi xxx.conf
以下は設定例となります。
server {
listen 80;
server_name vpslife.server-memo.net;
### 省略 ###
server_tokens off; # 追加した設定
### 省略 ###
}
設定反映
設定が終わったら、「nginx -t」で設定書式の確認を行った後に「nginx」を再起動して設定を反映させます。
$ sudo nginx -t $ sudo systemctl restart nginx
動作確認
「curl -I」コマンドで「Nginx」が返してくるヘッダー情報で、サーバの種類とバージョンの情報を確認することが出来ます。
設定変更前は「Server: nginx/1.27.4」とバージョンが表示されています。
$ curl -I http://vpslife.server-memo.net HTTP/1.1 200 OK Server: nginx/1.27.4 Date: Mon, 03 Mar 2025 08:42:24 GMT Content-Type: text/html; charset=ISO-8859-1 Connection: keep-alive
設定変更後は「Server: nginx」とバージョンが表示されなくなっていることを確認して下さい。
$ curl -I http://vpslife.server-memo.net HTTP/1.1 200 OK Server: nginx Date: Mon, 03 Mar 2025 08:42:44 GMT Content-Type: text/html; charset=ISO-8859-1 Connection: keep-alive
WebブラウザでNginxのバージョンを確認する方法を下記のページで説明しているので、興味があれば参照してみて下さい。

Nginxのバージョンを確認する方法の色々
Nginxのバージョンを確認する方法を色々とまとめました。nginxコマンドで確認Nginxがインストールされているサーバで、「nginx」コマンドを使用してバージョンを表示させる方法です。nginx -v (vは小文字)「nginx -v...
コメント