Nginx はバージョン番号を非表示にする 実稼働環境では、セキュリティ上の脆弱性の漏洩を避けるために、Nginx のバージョン番号を非表示にする必要があります。 表示方法 Windows クライアントで Nginx のバージョン番号を確認するには、fiddler ツールを使用します。centos システムで確認するには、「curl -I URL」コマンドを使用します。 Nginx でバージョン番号を隠す方法 設定ファイルを変更する ソースコードを変更する 1. Nginxをインストールする 1. Linuxのリモート共有を使用してファイルを取得し、mntディレクトリにマウントします。 [root@localhost ~]# smbclient -L //192.168.100.3/ ##リモート共有アクセス SAMBA\rootのパスワードを入力してください: シェア名 タイプ コメント --------- ---- ------- LNMP-C7 ディスク [root@localhost ~]# mount.cifs //192.168.100.3/LNMP-C7 /mnt ##/mntディレクトリにマウント 2. ソースパッケージを/optに解凍して確認する [root@localhost ~]# cd /mnt ##マウントポイントディレクトリに切り替えます [root@localhost mnt]# ls Discuz_X3.4_SC_UTF8.zip nginx-1.12.2.tar.gz mysql-boost-5.7.20.tar.gz php-7.1.20.tar.gz [root@localhost mnt]# tar zxvf nginx-1.12.2.tar.gz -C /opt ##Nginx ソース パッケージを /opt に解凍します [root@localhost mnt]# cd /opt/ ##解凍したディレクトリに切り替えます [root@localhost opt]# ls nginx-1.12.2 RH 3. コンパイルに必要な環境コンポーネントパッケージをインストールする [root@localhost opt]# yum -y install \ gcc \ //C言語 gcc-c++ \ //C++言語 pcre-devel \ //pcre言語ツール zlib-devel //データ圧縮ライブラリ 4. プログラムユーザーnginxを作成し、Nginxをコンパイルする [root@localhost opt]# useradd -M -s /sbin/nologin nginx ##安全でログインできないプログラムユーザーを作成します [root@localhost opt]# id nginx uid=1001(nginx) gid=1001(nginx) グループ=1001(nginx) [root@localhost opt]# cd nginx-1.12.0/ ##nginxディレクトリに切り替えます [root@localhost nginx-1.12.0]# ./configure \ ##nginxを設定します > --prefix=/usr/local/nginx \ ##インストールパス> --user=nginx \ ##ユーザー名> --group=nginx \ ##ユーザーグループ> --with-http_stub_status_module ##ステータス統計モジュール 5. コンパイルしてインストールする [root@localhost nginx-1.12.0]# make ##コンパイル... [root@localhost nginx-1.12.0]# make install ##インストール... [root@localhost nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ ##システムがnginxの起動スクリプトを認識できるようにソフトリンクを作成します 6. サービス管理を容易にするための管理スクリプトを作成する [root@localhost nginx]# cd /etc/init.d/ ##スタートアップ設定ファイルのディレクトリに切り替えます [root@localhost init.d]# ls 機能 netconsole ネットワーク README [root@localhost init.d]# vim nginx ##起動スクリプトファイルを編集します #!/bin/bash # chkconfig: - 99 20 ##コメント情報# 説明: Nginx サービス制御スクリプト PROG="/usr/local/nginx/sbin/nginx" ##変数をnginxコマンドファイルに設定します PIDF="/usr/local/nginx/logs/nginx.pid" ##変数PIDファイルのプロセス番号を5346に設定します ケース「$1」 始める) $PROG ## サービスを開始します;; 停止) kill -s QUIT $(cat $PIDF) ## サービスを閉じます;; restart) ##サービスを再起動する $0 stop 0ドルからスタート ;; reload) ## サービスを再ロード kill -s HUP $(cat $PIDF) ;; *) ##エラー入力プロンプト echo "使用方法: $0 {start|stop|restart|reload}" 出口1 エサック 終了 0 [root@localhost init.d]# chmod +x /etc/init.d/nginx ##起動スクリプトに実行権限を与える [root@localhost init.d]# chkconfig --add nginx ##サービスマネージャーに追加する [root@localhost init.d]# service nginx stop ##サービスを使用してnginxを制御できる [root@localhost init.d]# サービス nginx を開始 2. バージョン番号を非表示にする [root@localhost init.d]# curl -I http://192.168.13.140/ ##Nginx 情報を表示 HTTP/1.1 200 OK サーバー: nginx/1.12.2 ##バージョン番号を表示 日付: 2019年11月12日火曜日 14:23:24 GMT コンテンツタイプ: text/html コンテンツの長さ: 612 最終更新日: 2019年11月12日(火) 13:46:35 GMT 接続: キープアライブ ETag: "5dcab7bb-264" 受け入れ範囲: バイト [root@localhost init.d]# vim /usr/local/nginx/conf/nginx.conf ## 設定ファイル http を変更します { ## http の下に include mime.types を追加します。 デフォルトタイプ アプリケーション/オクテットストリーム; server_tokens off; ##バージョン番号をオフにする [root@localhost init.d]# service nginx stop ##サービスをオフにする [root@localhost init.d]# service nginx start ##サービスをオンにする [root@localhost init.d]# curl -I http://192.168.13.140/ ##Nginx情報を表示する HTTP/1.1 200 OK サーバー: nginx ##バージョン番号は非表示です 日付: 2019 年 11 月 12 日火曜日 14:22:00 GMT コンテンツタイプ: text/html コンテンツの長さ: 612 最終更新日: 2019年11月12日(火) 13:46:35 GMT 接続: キープアライブ ETag: "5dcab7bb-264" 受け入れ範囲: バイト 3. バージョン番号を偽造する(再コンパイルしてインストールする必要がありますが、コンパイルとインストールの前に実行できます) 1. バージョン番号を開く [root@localhost init.d]# vim /usr/local/nginx/conf/nginx.conf http { mime.types を含めます。 デフォルトタイプ アプリケーション/オクテットストリーム; server_tokens on; ##バージョン番号を開く 2. Nginxソースパッケージファイルを変更する [root@localhost init.d]# cd /opt/nginx-1.12.2/src/core/ ##src ソース パッケージ ディレクトリに切り替えます [root@localhost core]# vim nginx.h ##ファイルを変更します #define NGINX_VERSION "1.1.1" ##ここでのバージョン番号は 1.1.1 に偽装されます 3. 再コンパイルしてインストールする [root@localhost core]# cd /opt/nginx-1.12.2/ ##ディレクトリをNginxに切り替える [root@localhost nginx-1.12.2]# ./configure \ ##再構成> --prefix=/usr/local/nginx \ > --user=nginx \ > --group=nginx \ > --http_stub_status_module を追加 [root@localhost nginx-1.12.0]# make ##再コンパイル... [root@localhost nginx-1.12.0]# make install ##再インストール... 4. Nginxサービスを再起動し、バージョン情報を確認します。 [root@localhost nginx-1.12.2]# service nginx stop ##閉じる [root@localhost nginx-1.12.2]# service nginx start ##開く [root@localhost nginx-1.12.2]# curl -I http://192.168.13.140/ ##Nginx 情報を表示 HTTP/1.1 200 OK サーバー: nginx/1.1.1 ##現時点でのバージョン番号は偽のバージョン番号です 日付: 2019年11月12日火曜日 14:34:02 GMT コンテンツタイプ: text/html コンテンツの長さ: 612 最終更新日: 2019年11月12日(火) 13:46:35 GMT 接続: キープアライブ ETag: "5dcab7bb-264" 受け入れ範囲: バイト Nginx ウェブページキャッシュ時間
設定方法 構成ファイルを変更し、http セクション、サーバー セクション、または場所セクションの特定のコンテンツの有効期限パラメータを追加できます。 実験環境 1台のNginxサーバーと1台のテストマシンWin10 1. イメージをNginxサイトディレクトリにコピーする [root@localhost ~]# cd /mnt/ ##マウントポイントに切り替えます [root@localhost mnt]# ls 11.jpg mysql-boost-5.7.20.tar.gz php-7.1.20.tar.gz 22.jpg nginx-1.12.2.tar.gz Discuz_X3.4_SC_UTF8.zip php-7.1.10.tar.bz2 [root@localhost mnt]# cp 11.jpg /usr/local/nginx/html/ ##画像をサイトにコピーします[root@localhost mnt]# cd /usr/local/nginx/html/ ##サイトに移動します[root@localhost html]# ls 11.jpg 50x.html インデックス.html 次に、Webページの情報を変更し、画像をindex.htmlファイルに追加します。 [root@localhost html]# vim index.html ##Webページ情報を変更する</head> <本文> <h1>nginx へようこそ!</h1> <img src="11.jpg"/> ##画像をウェブページに追加する 3. 設定ファイル情報を変更する [root@localhost html]# vim /usr/local/nginx/conf/nginx.conf ##設定ファイル events を変更する { ワーカー接続 1024; } user nginx nginx; ##Nginxのユーザーとグループを変更する # Apacheのドキュメントルートが.htaccessファイルへのアクセスを拒否する # nginxのものと一致します # location ~\.(gif|jepg|jpg|ico|bmp|png)$ { ##サポートされている画像形式 ルート html; ##サイトの有効期限は 1 日です; ##1 日間キャッシュします} [root@localhost html]# service nginx stop ## サービスを閉じて開きます [root@localhost html]# service nginx start 4番目に、フィドラーを使用してキャッシュを表示します Nginx ログカット Nginx の実行時間が長くなると、ログも増加します。 Nginxの実行状況を簡単に把握するためには、ログファイルに常に注意を払う必要があります。 ログファイルが大きすぎると監視に支障をきたします 定期的にログファイルをカットする Nginx 自体にはログ分割の機能はありませんが、Nginx シグナル制御機能のスクリプトを通じて自動ログ分割を実現し、Linux スケジュールタスクを通じて定期的にログ分割を実行できます。 1. ログセグメンテーションスクリプトファイルを作成する [root@localhost ~]# vim fenge.sh ##スクリプトファイルを書き込む #!/bin/bash #ファイル名:fenge.sh d=$(date -d "-1 day" "+%Y%m%d") ## 1 日前の時間を表示 logs_path="/var/log/nginx" ## 分割ログのパスを保存 pid_path="/usr/local/nginx/logs/nginx.pid" ## pid パス [ -d $logs_path ] || mkdir -p $logs_path ## ディレクトリがない場合はディレクトリを作成 mv /usr/local/nginx/logs/access.log ${logs_path}/test.com-access.log-$d ## 元のログ ファイルを新しいパスに生成します kill -USR1 $(cat $pid_path) ## 新しい pid ファイルの再生成を終了します find $logs_path -mtime +30 | xargs rm -rf ## 30 日前のログ ファイルを削除します [root@localhost ~]# chmod +x fenge.sh ## 実行権限を付与します [root@localhost ~]# ./fenge.sh ## スクリプト ファイルを実行します 2. ログのセグメンテーションを確認する [root@localhost ~]# cd /var/log/nginx/ ##Nginx ログディレクトリに切り替えます [root@localhost nginx]# ls test.com-アクセス.log-20191112 [root@localhost nginx]# date -s 2019-11-14 ##日付を明日の時刻に変更します 2019年11月14日木曜日 00:00:00 CST [root@localhost nginx]# cd ~ [root@localhost ~]# ./fenge.sh ##スクリプトを再実行します [root@localhost ~]# cd /var/log/nginx/ [root@localhost nginx]# ls ##ログセグメンテーションログファイルを表示 test.com-access.log-20191112 test.com-access.log-20191113 3. 定期的にスケジュールされたタスクを設定する [root@localhost nginx]# crontab -e ##定期的にスケジュールされたタスク 0 1 * * * /opt/fenge.sh 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Windows 64 ビット版の MySQL 8.0.15 インストール チュートリアル
>>: Reactコンポーネントのライフサイクル機能についての簡単な説明
まず、この投稿は Docker 初心者向けです。もちろん、ベテランであれば記事中の分割線以降の操作方...
関数を記述できます。主に正規表現を使用して判断を行います。入力文字が空の場合は、「-」を使用して置き...
目次1. 計算プロパティとは何ですか? 2. 計算プロパティの構文3. 例1. 計算プロパティとは何...
序文最近、面接中に、MySQL の InnoDB エンジンがどのようにトランザクションを実装している...
起動時に Ubuntu デュアル システムが停止する問題の解決方法 (Ubuntu 16.04 およ...
目次序文1. 公式サイトからMySQLをダウンロードする2. 解凍ファイルを設定する3. 初期化4....
Nginx を Web サーバーとして使用する際に、次の問題が発生しました。 1. nginxの起動...
目次1. DOMとBOM関連1. 要素にフォーカスがあるかどうかを確認する2. 要素の兄弟ノードをす...
目次同一起源ポリシーAjax リクエストの制限: Ajaxは自身のサーバーにのみリクエストを送信でき...
環境: [root@centos7 ~]# uname -r 3.10.0-514.el7.x86_...
毎日jQueryプラグイン - 検索履歴を作成するためのものです。参考までに、具体的な内容は次のとお...
質問画像とテキストのシームレスなスクロールは、一般的に携帯電話では良い効果をもたらしますが、一部のモ...
概要クラウド プラットフォームのお客様のサーバーでは、業務量が拡大し続けるとディスク容量が不足する場...
目次ライフサイクルの変化反応的な参照vue2.x では ref を使用して要素タグを取得します。vu...
丁寧に掃除を始めましょう!未使用ボリュームの一覧docker ボリューム ls -qf dangli...