Местоположение Nginx, псевдоним, переписать, корень - PullRequest
4 голосов
/ 29 ноября 2009

Я подаю / foo / bar / через proxypass и хочу продолжать это делать. Тем не менее, я хотел бы служить /foo/bar/baz.swf статически, скажем, /var/www/mystatic/baz.swf и т. Д.

Я надеялся, что смогу сделать что-то вроде

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

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

И / foo / bar / перейдет на сервер приложений, а /foo/bar/(.*) будет обслуживаться статически.

Документы говорят, что я не могу этого сделать, и мне нужно использовать комбинацию root и rewrite: http://wiki.nginx.org/NginxHttpCoreModule

В дополнение к усложнению я хотел бы продолжить использование древней, неподдерживаемой версии 0.5.33. Любая помощь будет принята с благодарностью.

Редактировать: двигаясь вперед, кто-то предложил использовать root вместо псевдонима. Но не похоже, что я могу использовать какое-либо регулярное выражение в директиве location с моей версией? Здесь /foo/bar/baz.swf обслуживается proxy_pass! У меня есть файл на /var/www/foo/bar/baz.swf.

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

Ответы [ 3 ]

2 голосов
/ 01 декабря 2009

Вы можете сделать это; но это немного эзотерично. Попробуйте использовать:

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

location / {
    proxy_pass ....;
}

Эти параметры описаны в вики http://wiki.nginx.org/NginxHttpCoreModule#location

1 голос
/ 05 декабря 2009

Вы можете:

# mkdir /var/www/foo  
# mv /var/www/mystatic /var/www/foo/bar

, затем используйте эту конфигурацию:

location ~ ^/foo/bar/(.+) {
  root /var/www/;
}
1 голос
/ 03 декабря 2009
location = /foo/bar/baz.swf {} 

очистит все параметры, установленные в /foo/bar/baz.swf. Таким образом, вы можете оставить это где он находится в качестве параметров прокси не будет использоваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...