4

私はプロキシパス経由で /foo/bar/ を提供していますが、これを続けたいと思っています。ただし、/var/www/mystatic/baz.swf などから /foo/bar/baz.swf を静的に提供したいと考えています。

私は次のようなことができることを望んでいました

    location /foo/bar/(.*) {
      alias /var/www/mystatic/;
    }

    location / {
      proxy_pass ....;
      ... 
    }

また、/foo/bar/ はアプリケーション サーバーに送られ、/foo/bar/(.*) は静的に提供されます。

ドキュメントには、これを行うことはできず、ルートと書き換えの組み合わせを使用する必要があると書かれています: http://wiki.nginx.org/NginxHttpCoreModule

さらに複雑なことに、サポートされていない古いバージョンの 0.5.33 を引き続き使用したいと考えています。どんな助けでも大歓迎です。

編集:先に進むと、誰かがエイリアスの代わりにルートを使用することを提案しました。しかし、私のバージョンの場所ディレクティブで正規表現を使用できないようですか? ここで、/foo/bar/baz.swf は proxy_pass! によって提供されます。/var/www/foo/bar/baz.swf にファイルがあります。

    location /foo/bar/(.+) {
      root /var/www/;
    }
4

3 に答える 3

2

あなたはこれを行うことができます; しかし、それは少し難解です。使用してみてください:

location ^~ /foo/bar {
    alias /var/www/mystatic/;
}

location / {
    proxy_pass ....;
}

これらのオプションは、Wiki http://wiki.nginx.org/NginxHttpCoreModule#locationに記載されています。

于 2009-12-01T00:02:34.853 に答える
1
location = /foo/bar/baz.swf {} 

/foo/bar/baz.swf に設定されているすべてのオプションをクリアします。したがって、プロキシ オプションは使用されないため、そのままにしておくことができます。

于 2009-12-03T04:46:47.190 に答える