0

nginx/1.4.2 + Apache があり、すべてのリクエストを nginx でキャッシュしたいと考えています。このロケーション ルールは、.php のキャッシュ ファイルを作成しますが、.html のキャッシュ ファイルは作成しません。

    location ~* \.(html|php)$ {
            proxy_pass http://127.0.0.1:8080;
            proxy_set_header Host my-host-name.com;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-IP $remote_addr;

            add_header cache "html";

            proxy_cache default;
            proxy_cache_min_uses 1;
            proxy_cache_valid  1d;
            proxy_cache_key "$host|$request_uri";
            proxy_hide_header "Set-Cookie";
            proxy_ignore_headers "Cache-Control" "Expires";
    }

ヘッダー「キャッシュ」が応答に追加されたため、場所が機能しています。

私は "location / " を試してみました - キャッシュに保存された .php 拡張子を持つ (そして何も持たない) スクリプトへのリクエスト。拡張子が .html のスクリプトの場合、nginx はキャッシュを作成しません。

nginx が .html 拡張子のスクリプトを無視する理由がわかりません。スクリプトの名前を .php に変更する - それは方法ではありません。私は CMS を使用しており、.html を含むページの人間が読める URL を作成します。Google インデックスには何千ものページがあり、名前を変更するとサイトの再インデックスが行われます。

4

1 に答える 1