ホームページ  >  記事  >  バックエンド開発  >  nginx リバース プロキシ、動的リクエストと静的リクエストの分離、nginx キャッシュ アプリケーション、および ngx_cache_purge を使用して指定された URL をクリアします

nginx リバース プロキシ、動的リクエストと静的リクエストの分離、nginx キャッシュ アプリケーション、および ngx_cache_purge を使用して指定された URL をクリアします

WBOY
WBOYオリジナル
2016-08-08 09:31:181334ブラウズ

一、nginx逆代理配置

 

     #トムキャット

Java代  

  1. アップストリーム tomcat_server{
  2. サーバー127.0.0.1:8080;    
  3. }
  4. サーバー{
  5. 聞いてください80;  
  6. サーバー名 www.codes51.com;  
  7. 場所 / {
  8. proxy_redirect オフ;  
  9. proxy_set_header ホスト $host;  
  10. proxy_set_header X-Real-IP $remote_addr;  
  11. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  12. proxy_pass http://tomcat_server;
  13. }

 

当然のことながら、www.codes51.com(本地localhostの設定が必要、www.codes51.comがnginxにあるIPアドレスを指向する)の時期(またはwww.codes51.comをnginxにあるIPアドレスに直接書き込む)、後台の Tomcat サーバー (127.0.0.1:8080) を要求し、要求されたデータをクライアントに送信します。

 

 

二,動静态请求相分离

 

   画像、JS、HTML などの静的なサーバーは、一台のサーバーを削除しますが、動的要求は別のサーバーのサーバーを削除します。

 

 

 

Java代  

  1. サーバー {
  2. 聞いて 192.168.154.128:80;  
  3. server_name image.codes51.com;  
  4. インデックス index.html;  
  5. #proxy_pass http://tomcat_server;   
  6. #charset koi8-r;  
  7. #access_log logs/host.access.log main;  
  8. 場所 / {
  9. ルート html;  
  10. #index index.html index.htm;  
  11. proxy_redirect オフ;  
  12. proxy_set_header ホスト $host;  
  13. proxy_set_header X-Real-IP $remote_addr;  
  14. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  15. }
  16. 場所 ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
  17. {
  18. valid_referers none blocked 192.168.154.128 192.168.154.1;  
  19. if ($invalid_referer)
  20. {
  21. rewrite ^ /403.jpg 休憩;  
  22. }
  23. if (!-f $request_filename) {
  24. 書き換え ^ /404.jpg 最後;  
  25. }
  26. 有効期限は 30 日です。  
  27. }  
  28. #error_page 404 /404.html;  
  29. # サーバーエラーページを静的ページ/50x.html にリダイレクトします
  30. #
  31. error_page 500 502 503 504 /50x.html;  
  32. 場所 = /404.jpg {
  33. ルート html;  
  34. }
  35. }
  36. トムキャット
  37. アップストリーム tomcat_server{
  38. サーバー127.0.0.1:8080;    
  39. }
  40. サーバー{
  41. 聞いてください192.168.154.128;  
  42. サーバー名 www.codes51.com;  
  43. 場所 / {
  44. proxy_redirect オフ;  
  45. proxy_set_header ホスト $host;  
  46. proxy_set_header X-Real-IP $remote_addr;  
  47. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  48. proxy_pass http://tomcat_server;
  49. }
  50. }

 

 

このような方法は、異なるドメイン名を設定することによって、同じドメイン名内では不可能であり、判断によって動的リクエストと静的リクエストを分離することになりますか?

 

 

Java代  

  1. #トムキャット
  2. アップストリーム tomcat_server{
  3. サーバー127.0.0.1:8080;    
  4. }
  5. サーバー{
  6. 聞いてください192.168.154.128;  
  7. サーバー名 www.codes51.com;  
  8. 場所 ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
  9. {
  10. ルート html;  
  11. }
  12. 場所 ~ .*.(jsp|do)$ {
  13. proxy_redirect オフ;  
  14. proxy_set_header ホスト $host;  
  15. proxy_set_header X-Real-IP $remote_addr;  
  16. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  17. proxy_pass http://tomcat_server;
  18. }

 

 

OK! 同じドメイン名で、その後の違いに応じて、異なるサービスを要求し、静的要求を実行します。*.abc などの静的なファイルが再び出現した場合は、その形式のファイルを再適用します。しかし、あまり合理的ではないため、すべての表ファイルを同じルート項目の下に配置することを検討できます。たとえば、/static では、上の静的な面を次のように変更することができます。

 

 

Java代  

  1. 位置情報/静的
  2. {
  3. root html/static;  
  4. }

 

 

これは一部ではなく、ファイルの保存にもある程度の制限があります。

 

 

三、nginx 保存用

nginx は web 保存サービス、proxy_cache を備えていますが、一つの问問題があります、proxy_cache は指定された URL を削除できません、期間中は設置 URL のみが可能ですが、有问题、有人会很快解决问题、nginx 第三方模块ngx_cache_purge 能力浄化指定 URL 。

 

  nginx をインストールする場合は、ngx_cache_purege をインストールする必要があります。

 

Java代  

  1. ./configure --user=www --group=www --add-module=/root/dxm/nginx/ngx_cache_purge-1.2

 

このうち、/root/dxm/nginx/ngx_cache_purge-1.2 は ngx_cache_purge 解压路径 (添付ファイル内に提供される ngx_cache_purge tar 包ダウンロード)

 

现在来段实例,实现图片缓存:

ちなみに、proxy_tem_path と proxy_cache_path は同じパーティションに存在する必要があります。

Javaコード

  1. proxy_temp_path /usr/local/nginx/proxy_temp;
  2. proxy_cache_path /usr/local/nginx/proxy_cache_path レベル=1:2 key_zone=cache_one:200m inactive=1d max_size=1g;


Javaコード

  1. アップストリーム tomcat_server{
  2. サーバー 127.0.0.1:8080;    
  3. }
  4. サーバー{
  5. 聞いてください 192.168.154.128;  
  6. server_name www.codes51.com;  
  7. 場所 ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
  8. {
  9. proxy_cache cache_one;  
  10. proxy_cache_methods GET HEAD POST;  
  11. proxy_cache_min_uses 1;  
  12. proxy_cache_valid 200 302 10m;  
  13. proxy_cache_valid 404 1m;  
  14. proxy_cache_valid 任意 1m;  
  15. proxy_cache_key "$host:$server_port$uri$is_args$args";  
  16. proxy_redirect オフ;  
  17. proxy_set_header ホスト $host;  
  18. proxy_set_header X-Real-IP $remote_addr;  
  19. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  20. proxy_pass http://tomcat_server;
  21. }
  22. 場所 ~ .*.(jsp)$ {
  23. proxy_redirect オフ;  
  24. proxy_set_header ホスト $host;  
  25. proxy_set_header X-Real-IP $remote_addr;  
  26. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
  27. proxy_pass http://tomcat_server;
  28. }
  29. 場所 ~ /purge(/.*)
  30. 192.168.154.128を許可します。 192.168
  31. .
  32. 154.1を許可します。 すべて拒否します。
  33. proxy_cache_purge queue_one $host:$server_port$
  34. 1$is_args$args;
  35. }
  36. そうですね、静的ページはキャッシュされますが、動的リクエストはキャッシュされません。
最後の段落の Purege 設定を見てください。明らかに、指定された URL を手動でクリアできる IP が示されています。



上記では、nginx リバース プロキシ、動的リクエストと静的リクエストの分離、nginx キャッシュ アプリケーション、および ngx_cache_purge を使用して指定された URL をクリアする方法を紹介しました。内容も含めて、PHP チュートリアルに興味のある友人に役立つことを願っています。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。