Nginx サービスのパフォーマンスとセキュリティの最適化

目次

1. バージョン関連情報を非表示にするように Nginx を構成する

1. バージョン番号を隠す

2. バージョン番号と関連情報を変更します。

編集編集

2. Nginx ランタイムの所有者とグループを変更する

3. Nginx Web ページのキャッシュ時間を構成する

4. Nginx サイトのログセグメンテーションを構成する

5. Nginx の長い接続とタイムアウトを設定する

6. Nginx Web ページ圧縮を構成する

7、Nginx アンチリーチを設定する

1. シミュレートされたホットリンク

2. アンチリーチを設定してテストする


1. バージョン関連情報を非表示にするように Nginx を構成する

1. バージョン番号を隠す

nginx.conf ファイルを変更し、http ブロックにフィールドを追加し、サービスをリロードします。

画像

メッセージ情報を取得して表示する(ブラウザ表示またはコマンドを使用)

画像

2. バージョン番号と関連情報を変更します。

前の手順で nginx.conf にserver_tokens offを追加した場合は、それをコメントアウトする必要があります。

ソースコード情報の変更(変更後は再コンパイルとインストールが必要)

画像

(変更は表示される情報のみであり、バージョンや情報は変更されません)

画像

再コンパイルしてインストールする

​
cd /opt/ngnginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
​
make && make install
​
systemctl restart nginx.service


​

メッセージ情報を取得して表示する

画像

2. Nginx ランタイムの所有者とグループを変更する

nginx.conf ファイルを変更する

画像

nginx 実行ユーザーの変更を表示します (デフォルトは none)

画像

3. Nginx Web ページのキャッシュ時間を構成する

Nginx が Web ページ データをクライアントに返した後、キャッシュ時間を設定して、将来同じコンテンツがリクエストされたときに直接返すことが容易になり、リクエストの繰り返しを回避し、アクセス速度を高速化できます。

一般に、キャッシュ時間は静的 Web ページに設定され、動的 Web ページには設定されません。

nginx.conf ファイルを変更しhttp ブロック、server ブロック、または location ブロックにexpires パラメータを追加します。


# ~ は正規表現の使用を表し、その後に | location ~ \.(gif|jpg|jpeg|png|mp4|mp3|txt) で        区切られた文字で終わる一致するファイルが続きます$ { 
            root html; 
            1d 期限切れ; #キャッシュ時間を表しますは 1 日です
}

画像

画像

写真を追加し、テストにアクセスしてください

画像

メッセージ情報を確認します。86400は1日を表し、設定が有効になります。

 

 

4. Nginx サイトのログセグメンテーションを構成する

スクリプトを書く(翌日の早朝に実行されるため、前日の日付が取得される)

画像

実行してテストする

画像

スケジュールされたタスクに参加する

画像

5. Nginx の長い接続とタイムアウトを設定する

キープアライブタイムアウト

KeepAliveのタイムアウト時間(タイムアウト)を指定します。各 TCP 接続を維持できる最長時間を指定します。この時間が経過すると、サーバーは接続を閉じます。

Nginx のデフォルト値は 65 秒ですが、一部のブラウザーは最大 60 秒しか保持しないため、60 秒に設定できます。0 に設定すると、キープアライブ接続は無効になります。2 番目のパラメーター (オプション) は、応答ヘッダー keepalive_timeout の時間値を指定します。このヘッダーを使用すると、サーバーが接続を閉じる必要がないように、一部のブラウザーが積極的に接続を閉じることができます。このパラメータがないと、Nginx は Keep-Alive 応答ヘッダーを送信しません。

client_header_timeoutクライアントが完全なリクエスト ヘッダーをサーバーに送信するときのタイムアウト。クライアントが指定された時間内に完全な reqpuest ヘッダーを送信しない場合、Nginx は HTTP 408 (RequestTimed out) を返します。

client_body_timeout は、クライアントがサーバーとの接続を確立した後にリクエスト本文を送信するためのタイムアウト時間を指定します。クライアントが指定された時間内にコンテンツを送信しない場合、Nginx は HTT 408 (リクエストがタイムアウトしました) を返します。

nginx.conf ファイルを変更する

画像

構文を確認してサービスを再起動する

画像

リクエスト メッセージにアクセスして表示します (接続を維持し、ブラウザのタイムアウトは 50 秒です)。

画像

6. Nginx Web ページ圧縮を構成する

Nginx の ngx http gzip module 圧縮モジュールは、ファイル コンテンツを圧縮する機能を提供します。Web サイトの帯域幅を節約し、ユーザーのアクセス エクスペリエンスを向上させるために、Nginx サーバーが出力コンテンツをクライアントに送信する前に圧縮できるようにします。これはデフォルトでインストールされており、対応する圧縮関数パラメータを設定ファイルに追加して圧縮を最適化できます。パフォーマンス。

gzip をオンにします。 コメントを解除して gzip 圧縮を有効にする
gzip_min_length 1k; 最小圧縮ファイルサイズ 1k
gzip_buffers 4 64k; 4 64k バッファのサイズの圧縮バッファ
gzip_http_バージョン 1.1; 圧縮バージョン(デフォルトは1.1、フロントエンドがsquid2.5の場合は1.0を使用してください)
gzip_comp_level 6; 圧縮率(レベル1~9)
gzip_vary をオンにします。 圧縮ページを保存するためのフロントエンド キャッシュ サーバーのサポート
gzip_types テキスト/プレーンテキスト/JavaScript アプリケーション/x-javascript テキスト/CSS テキスト/xml アプリケーション/xml アプリケーション/xml+rss 画像/jpg 画像/jpeg 画像/png 画像/gif アプリケーション/x-httpd-php アプリケーション/javascript アプリケーション/ジェソン; 圧縮タイプ。どの Web ドキュメントが圧縮を有効にするかを示します。

画像

構文を確認してサービスを再起動する

画像

ページを準備してテストにアクセスする

 

7、Nginx アンチリーチを設定する

1. シミュレートされたホットリンク

www.abc.comの場合は 192.168.116.10 www.def.comの場合は 192.168.116.20 、

www.def.com は、www.abc.comの Web ページ画像をシミュレートします

Windows ホストを使用して 2 つの Web サイトにアクセスします。

ドメイン名解決を構成します (便宜上、ここで /etc/hosts ファイルを変更します)

画像

画像

画像

www.def.comのホームページに画像を追加します。

 

www.abc.comのホームページにあるこのサイトの画像を盗用します。

 

2. アンチリーチを設定してテストする

nginx.conf ファイルを変更します。キャッシュ構成がある場合は、キャッシュ構成の前に追加する必要があります。

場所 ~* .(gif|jpg|jpeg|png|swf)$ { ... }

~ は正規表現を使用することを意味し、* は大文字と小文字を区別しないことを意味します(抗ヒル画像の形式は場所のオプションに含めることはできません)

valid_referers ...

これは、信頼できる Web サイトを設定することを意味し、一致した Web サイトはアンチリーチにはなりません。

なし

http_refer のないリクエストによるリソースへのアクセスを許可します (Referer の定義によれば、その機能はリクエストのリンク元を示すことです。ブラウザのアドレス バーにリソースの URL アドレスを直接入力した場合、このリクエストは許可されません) Referer フィールドを含む) ( http://www.def.com/error.webpなど) ブロックされました

http:// で始まらず、リソースにアクセスするためのプロトコルを持たないリクエストを許可します。

$invalid_referer

これは、vaild_referersで指定されたサイト スコープの逆、つまり信頼されていないサイトです。

アドレスが$invalid_refererの範囲を満たすと判断した場合は、条件に文を指定し、

つまり、 ^/ http://www.def.com/error.webp ; アクセスされた URL を指定された URL に書き換えます。

画像

画像

ヒル対策の写真をwww.def.comにアップロードします

画像

再度www.abc.comにアクセスしてテストすると、指定されたヒル対策画像になります。

画像

おすすめ

転載: blog.csdn.net/wlc1213812138/article/details/131384159