問題タブ [mod-expires]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - どれを使用するか: Expire ヘッダー、Last Modified ヘッダー、または ETags
私は Apache で PHP を実行していますが、サイトの読み込みを高速化するためにサーバー側のキャッシュを実装する方法について混乱しています。
Expires
とヘッダーの違いは何ですか?Last-Modified
またETag
、どの状況でどちらを使用する必要がありますか?
php - .htaccess を使用して、ディレクトリ内の期限切れのイメージをリダイレクトまたは mod_rewrite する方法
ディレクトリ内の画像を探すリダイレクト設定があり、存在しない場合は、画像のサイズを変更してそのディレクトリに保存するphpファイルにリダイレクトします。私はそれをうまく機能させました。問題は、書き込まれた画像が 4 時間前のものである場合に、それをリダイレクトする適切な方法を見つける必要があることです。Mod_expires を調べましたが、画像が 4 時間経過したときに、php 画像リサイザーにリダイレクトする方法が見つかりませんでした。
PHP でこれを実行できることはわかっていますが、要点は、PHP の代わりに apache を使用してサーバーの負荷を軽減することでした。私が取り組んでいるサイトは、毎日数千人の閲覧者を獲得しているため、サイズ変更された画像を効率的にキャッシュする必要があります。これが私がやっていることの例です...
- ブラウザは「http://images.mydomain.com/image/1234_01_thumb.jpg」を要求します
- Apache は「http://images.mydomain.com/image/1234_01_thumb.jpg」が存在するかどうかを確認します
- 存在しない場合は、「/image/resize_image.php」にリダイレクトし、「/images/」フォルダにサムネイルを生成します
「1234_01_thumb.jpg」がx時間経過したときに「/image/resize_image.php」にリダイレクトするにはどうすればよいですか?ある時点で、誰かがその写真を更新しなければならなくなります。特に間違った写真をアップロードした場合は、永続的ではありません。
助けてください。前もって感謝します!
.htaccess - ページが正しくキャッシュされていない、応答ヘッダーが間違っているように見える...どうすれば修正できますか?
わかりました、質問の仕方が本当にわかりませんでしたが、私の問題、または少なくとも問題は次のようになると思います。
私が取り組んでいるブログの読み込みが非常に遅いため、gzip を追加してすべてのプラグインを無効にするなど、通常どおり高速化を行いましたが、役に立ちませんでした。そのため、Firebug で送信されているヘッダーを調べたところ、ページの元のリクエストが永遠にかかっていることに気付きましたが、残りのリクエストは通常どおり読み込まれていました。
特定のページの応答/要求ヘッダーは次のとおりです。
リクエスト ヘッダー
応答ヘッダー
キャッシュがなく、接続が閉じるように設定されており、有効期限が 30 年前であるため、明らかに何かが間違っています。
これは、expires ヘッダーなどを設定した .htaccess ファイルです。
.htaccess
大変感謝しております。
ところで、CentOS 5.* の PHP 5.2.10/MySQL 5.1 で WordPress 3.1.1 を実行しています。
apache - 条件付きで設定された Apache 構成の期限切れヘッダー
プロジェクトの開発中はキャッシュされず、実稼働中はキャッシュされるように、条件付きで画像に期限切れヘッダーを設定したいと思います。理想的には、これは単に apache conf ファイルの変更です。プロジェクトのステータスを返す perl スクリプトがあります。これは、次のように mod_rewrite で使用できます。
次のようなことができればいいのですが:
もちろん、それはうまくいきませんが。
解決策はありますか?
apache - mod_expiresは3##ステータスコードのCache-Controlヘッダーを送信します
Apacheは、302リダイレクトなどの3##ステータスコードのCache-Controlヘッダーを送信しています。これにより、Firefox(Firefox 5以降)が302リダイレクトをキャッシュします。これにより、一部のページでリダイレクトループが無限に発生します。
これが私が私ので使用している設定ですhttpd.conf
:
ExpiresDefault設定を削除すると、問題は解決するので、これが問題の原因となっている正確な設定であると確信しています。私が変更ExpiresDefault A600
しExpiresByType text/html A600
た場合、問題はまだあります。
ブラウザにデフォルトでコンテンツをキャッシュさせたいのですが、これは大きな問題です。
3 ##ステータスコード用に別のCache-Controlヘッダーを送信するようにApacheに指示するために使用できる設定はありますか?
apache - リクエストに応じて mod_expire を有効にする
へのリンクを生成する代わりにfile.js
、バージョン番号またはハッシュ サムを計算して にリンクしていfile--bbe02f946d.js
ます。次のリダイレクト ルールを使用して、現在のバージョンのファイルを提供しています。
ここで、これらのリクエストに対して非常に離れたExpiresヘッダーを設定したいと思います。
これは正常に機能しますが、まだバージョン管理されていないリソース (/file.js
リクエスト) にも適用されます。RewriteRule に一致するリクエストに対してのみ、expires ヘッダーを設定するにはどうすればよいですか? 通常は を使用<LocationMatch>
しますが、htaccess を変更するだけでアプリケーションを任意のサーバーで実行できる必要があるため、これは使用できません。
ruby-on-rails - lighttpd/thinのブラウザキャッシュを有効にする
Googleの「ページ速度」でブラウザのキャッシュを有効にする必要があると言われているという問題があります。
サーバー上の別のWebサーバーのプロキシとしてlighttpdサーバーで使用しています。そのうちの1つは、シンサーバーで実行されるRailsアプリ(Ruby 1.9.2 / Rails 2.3.x)です。
lighttpdプロキシで「mod_expire」を有効にして、設定を使用する必要があると思いました。
しかし、それは機能しませんでした。また、expire.urlコードを次の場所に移動しました。
それもうまくいきませんでした。
だから私の質問は:lighttpd / thin設定でブラウザのキャッシュを有効にするにはどうすればよいですか?
残念ながら、Googleは私を助けませんでした。
.htaccess - このレバレッジ ブラウザー キャッシュがオンになっていることを確認するにはどうすればよいですか?
私は自分のサイトの images/js/css ext.. に有効期限を設定しようとしています.
だから私はこれをhtaccessに追加し、ページを更新しましたが、まだ(有効期限は指定されていません):
何かをオンにする必要がありますか、またはこれを機能させる方法はありますか?
apache - mod_expires でキャッシュ ヘッダーを上書きする
Apache の mod_expires モジュールを使用してキャッシュ ヘッダーを設定したいと考えています。私の構成は次のようになります。
問題は、ファイルが私が制御していない 3 番目のシステムによって生成されることです。これらのシステムは、次のヘッダーを持つファイルを提供します。
これらのヘッダーにより、mod_expires でキャッシュ ヘッダーを設定できなくなります。http://httpd.apache.org/docs/2.2/mod/mod_expires.htmlで理由がわかります:
Expires ヘッダーがサーバーによって生成された応答の一部である場合 (たとえば、CGI スクリプトによって生成された場合やオリジン サーバーからプロキシされた場合)、このモジュールは Expires または Cache-Control ヘッダーを変更または追加しません。
このルールを回避してヘッダーを mod_expires で上書きする方法はありますか?
更新: この制限を回避するための 1 つの可能な解決策は、mod_headers のみを使用してキャッシュ ヘッダーを設定することです。残念ながら、値を計算する必要があるため、これは代替手段ではありません。
ありがとうございます。
apache - ファイルシステムに存在しないパスにApacheを使用して有効期限ヘッダーを追加します
CDNを無効にするために、サイトのURLのパス要素にプレフィックスを追加する必要があります。これは、アセットの新しいバージョンがリリースされるたびに変更されます。
次に、mod_rewriteを使用してURLをhttp://example.com/cdn/20111030/images/image.jpgからhttp://example.com/images/image.jpgに書き換えます。これは、アセットが実際に存在する場所です。
応答に長い有効期限ヘッダー(少なくとも3か月)を追加したいと思います(ファイルシステムに実際には存在しない最初のURLの場合)。誰かがこれを行う方法を知っていますか?