1. nginx キャッシュの利点
図に示すように、nginx キャッシュは、nginx キャッシュの処理リクエストをある程度削減できます。ソースサーバーの圧力。
静的ファイル (css、js、画像など) の多くは頻繁に更新されないためです。 nginx は proxy_cache を使用してユーザーリクエストをローカルディレクトリにキャッシュします。次の同じリクエストは、サーバーにリクエストすることなく、キャッシュ ファイルを直接呼び出すことができます。
結局のところ、io 集中型のサービスの処理が nginx の強みです。
2. 設定方法
最初に栗:
http{ proxy_connect_timeout 10; proxy_read_timeout 180; proxy_send_timeout 5; proxy_buffer_size 16k; proxy_buffers 4 32k; proxy_busy_buffers_size 96k; proxy_temp_file_write_size 96k; proxy_temp_path /tmp/temp_dir; proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=10g; server { listen 80 default_server; server_name localhost; root /mnt/blog/; location / { } #要缓存文件的后缀,可以在以下设置。 location ~ .*\.(gif|jpg|png|css|js)(.*) { proxy_pass http://ip地址:90; proxy_redirect off; proxy_set_header host $host; proxy_cache cache_one; proxy_cache_valid 200 302 24h; proxy_cache_valid 301 30d; proxy_cache_valid any 5m; expires 90d; add_header wall "hey!guys!give me a star."; } } # 无nginx缓存的blog端口 server { listen 90; server_name localhost; root /mnt/blog/; location / { } } }
サーバー上でテストしているため、2 つのポート 80 と 90 2 つのサーバー間の対話をシミュレートするために使用されます。
ポート 80 は通常のドメイン名 () アクセスに接続されています。
ポート 90 は、ポート 80 によってプロキシされたリソース アクセスの処理を担当します。
ポート 90 がソース サーバー、ポート 80 が nginx リバース キャッシュ プロキシ サーバーに相当します。
次に、設定項目について説明します。
2.1 http レイヤー設定
proxy_connect_timeout 10; proxy_read_timeout 180; proxy_send_timeout 5; proxy_buffer_size 16k; proxy_buffers 4 32k; proxy_busy_buffers_size 96k; proxy_temp_file_write_size 96k; proxy_temp_path /tmp/temp_dir; proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=10g;
proxy_connect_timeout サーバー接続タイムアウトTime
proxy_read_timeout 接続が成功したら、バックエンド サーバーの応答時間まで待機します。
proxy_send_timeout バックエンド サーバーのデータが返される時間
proxy_buffer_size バッファのサイズ
proxy_buffers 各接続に設定されるバッファの数はnumber、各バッファのサイズはsize#です。
2.2 サーバー層の設定
2.2.1 リバース キャッシュ プロキシ サーバー
server { listen 80 default_server; server_name localhost; root /mnt/blog/; location / { } #要缓存文件的后缀,可以在以下设置。 location ~ .*\.(gif|jpg|png|css|js)(.*) { proxy_pass http://ip地址:90; proxy_redirect off; proxy_set_header host $host; proxy_cache cache_one; proxy_cache_valid 200 302 24h; proxy_cache_valid 301 30d; proxy_cache_valid any 5m; expires 90d; add_header wall "hey!guys!give me a star."; } }
#ここでは、キャッシュ用の画像、CSS、JS 静的リソースを設定します。
上記ファイル名の末尾の静的リソースを解析すると、キャッシュ領域から静的リソースが取得されます。
取得できない場合、リクエストは proxy_pass が指すアドレスに転送されて処理されます。
server { listen 90; server_name localhost; root /mnt/blog/; location / { } }
ここでは、ポート 90 で受信したリクエストが直接処理され、サーバーのローカル ディレクトリ/mnt/blog からリソースが取得されます。応答する。
3. キャッシュが有効かどうかを確認する方法注意深い読者は、2 番目の段落にイースターエッグを残したことに気づくはずです add_header Wall "Hey !guys!give私はスターです。」 add_header は、ヘッダーにカスタマイズされた情報を設定するために使用されます。 したがって、キャッシュが有効であれば、静的リソースによって返されるヘッダーには確実にこの情報が含まれます。
アクセス結果は以下の通りです:
以上がnginx を使用して静的ファイルをサーバーにキャッシュする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。