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

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

Aug 08, 2016 am 09:31 AM
header nbsp proxy server tomcat

一、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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Tomcat サーバーへの外部ネットワーク アクセスを許可する方法 Tomcat サーバーへの外部ネットワーク アクセスを許可する方法 Apr 21, 2024 am 07:22 AM

Tomcat サーバーが外部ネットワークにアクセスできるようにするには、以下を行う必要があります。 外部接続を許可するように Tomcat 構成ファイルを変更します。 Tomcat サーバー ポートへのアクセスを許可するファイアウォール ルールを追加します。 Tomcat サーバーのパブリック IP を指すドメイン名を指す DNS レコードを作成します。オプション: リバース プロキシを使用して、セキュリティとパフォーマンスを向上させます。オプション: セキュリティを強化するために HTTPS を設定します。

Tomcat に jar プロジェクトをデプロイする方法 Tomcat に jar プロジェクトをデプロイする方法 Apr 21, 2024 am 07:27 AM

JAR プロジェクトを Tomcat にデプロイするには、次の手順に従います。 Tomcat をダウンロードして解凍します。 server.xml ファイルを構成し、ポートとプロジェクトのデプロイメント・パスを設定します。 JAR ファイルを指定されたデプロイメント パスにコピーします。 Tomcatを起動します。指定された URL を使用して、デプロイされたプロジェクトにアクセスします。

Tomcatのインストールディレクトリはどこにありますか? Tomcatのインストールディレクトリはどこにありますか? Apr 21, 2024 am 07:48 AM

Tomcat インストール ディレクトリ: デフォルト パス: Windows: C:\Program Files\Apache Software Foundation\Tomcat 9.0macOS:/Library/Tomcat/Tomcat 9.0Linux:/opt/tomcat/tomcat9 カスタム パス: インストール中に指定できます。インストール ディレクトリを見つけます。whereis またはlocateコマンドを使用します。

Tomcat で複数のプロジェクトをデプロイする方法 Tomcat で複数のプロジェクトをデプロイする方法 Apr 21, 2024 am 09:33 AM

Tomcat を介して複数のプロジェクトをデプロイするには、プロジェクトごとに webapp ディレクトリを作成してから、次の操作を行う必要があります。 自動デプロイ: webapp ディレクトリを Tomcat の webapps ディレクトリに配置します。手動デプロイメント: Tomcat のマネージャー アプリケーションにプロジェクトを手動でデプロイします。プロジェクトがデプロイされると、そのデプロイメント名 (例: http://localhost:8080/project1) でアクセスできるようになります。

Tomcatでの同時接続数を確認する方法 Tomcatでの同時接続数を確認する方法 Apr 21, 2024 am 08:12 AM

Tomcat の同時接続数を確認する方法: Tomcat Manager ページ (http://localhost:8080/manager/html) にアクセスし、ユーザー名とパスワードを入力します。左側のナビゲーション バーで [ステータス] -> [セッション] をクリックすると、ページの上部に同時接続数が表示されます。

Tomcat Web サイトのルート ディレクトリはどこですか? Tomcat Web サイトのルート ディレクトリはどこですか? Apr 21, 2024 am 09:27 AM

Tomcat Web サイトのルート ディレクトリは Tomcat の webapps サブディレクトリにあり、Web アプリケーション ファイル、静的リソース、および WEB-INF ディレクトリを保存するために使用されます。これは、Tomcat 構成ファイルで docBase 属性を検索することで見つかります。

Tomcatのポート番号を確認する方法 Tomcatのポート番号を確認する方法 Apr 21, 2024 am 08:00 AM

Tomcat のポート番号は、server.xml ファイルの <Connector> 要素の port 属性を確認することで確認できます。 Tomcat 管理インターフェイス (http://localhost:8080/manager/html) にアクセスし、[ステータス] タブを表示します。コマンドラインから「catalina.sh version」を実行し、「Port:」行を確認します。

Tomcat で異なるポート番号を持つ 2 つのプロジェクトを実行する方法 Tomcat で異なるポート番号を持つ 2 つのプロジェクトを実行する方法 Apr 21, 2024 am 09:00 AM

Tomcat サーバー上で異なるポート番号を使用してプロジェクトを実行するには、次の手順が必要です。server.xml ファイルを変更し、Connector 要素を追加してポート番号を定義します。 Context 要素を追加して、ポート番号に関連付けられたアプリケーションを定義します。 WAR ファイルを作成し、対応するディレクトリ (webapps または webapps/ROOT) にデプロイします。 Tomcat を再起動して変更を適用します。

See all articles