1

nginxが前にあり、apache+PHPが後ろにあるセットアップがあります。

私のPHPアプリケーションは、nginxでSSIを使用して構築された動的な部分を除いて、nginxによって直接アクセスされるmemcacheにいくつかのページをキャッシュします。

私が最初に抱えた問題は、nginxがssiURIにmemcacheを使用しようとしなかったことです。

<!--# include virtual="/myuser" -->

したがって、完全なURLを使用するように強制すると、それが実行されると考えました。

<!--# include virtual="http://www.example.com/myuser" -->

しかし、ログファイル(nginxとapacheの両方)では、URLの先頭にスラッシュが追加されていることがわかります

http ssi filter "/http://www.example.com/myuser"

SSIモジュールのソースコードに追加されたように見えるPREFIXが表示されますが、それを無効にできるかどうかは本当にわかります。

誰かがこの問題を抱えていますか?Nginxバージョン:UbuntuKarmic64ビットで0.7.62

どうもありがとう

4

2 に答える 2

18

SSI命令で直接参照できない場合でも、リモートURLを含めるようにnginxを構成できます。サイト構成で、ローカルパスと、目的の場所を指す名前付きリモートロケーションを使用してロケーションを作成します。例えば:

サーバー{
...。
  場所/リモート{
    proxy_pass @long_haul; #または「try_files」を使用してフォールバックを提供します
  }

  場所@long_haul{
    proxy_pass http://porno.com;
  }
...。
}

提供されるhtmlでは、/remotepathを参照するincludeディレクティブを使用します。

  <!-#include virtual = "/ remote / rest-of-url&and = parameters"->

変数と正規表現を使用してさらに渡されるURLをカスタマイズできることに注意してください。例えば:

  場所〜/ remote(。+){
    proxy_pass @ long_haul $ 1?$ args;
  }
于 2011-04-08T10:37:16.253 に答える
2

nginxについては何もありません、あなたはそれをすることができません。SSIはリモートuriを受け入れません。指定できるのはローカルファイルパスのみです。

http://en.wikipedia.org/wiki/Server_Side_Includesを参照して ください

于 2010-07-26T12:07:15.633 に答える