2010-09-13 2 views
0

Я пытаюсь получить nginx до всегда прокси-запросы, даже если существует статический файл. Я прокси-сервер работает нормально, но nginx, похоже, настаивает на том, чтобы обслуживать статическую версию файла, даже если была объявлена ​​директива прокси.Nginx proxy_pass игнорируется, если существует статический файл

Так что в приведенной ниже конфигурации, если файл с именем «/siteroot/static/members/page.html» существует, он будет (неправильно) обслуживаться напрямую вместо проксирования, но если я удалю файл, то проксирование продолжается как и ожидалось. Как заставить nginx всегда прокси?

Я бегу Nginx 0.7.67, вот полный конфиг:

worker_processes 1; 

error_log logs/error.log; 
pid  logs/nginx.pid; 

events { 
    worker_connections 1024; 
} 

http { 
    include  mime.types; 
    default_type application/octet-stream; 

    access_log logs/access.log; 

    sendfile  on; 
    keepalive_timeout 65; 
    tcp_nodelay  on; 

    gzip on; 
    gzip_disable "MSIE [1-6]\.(?!.*SV1)"; 
} 

server { 
    listen  80; 
    server_name .XXX.net .XXXnet.net; 
    server_name_in_redirect off; 

    location ^~ /members { 
      access_log logs/members-access.log; 
      proxy_pass http://127.0.0.1:5010; 
    } 

    location ^~ /search { 
      access_log logs/search-access.log; 
      proxy_pass http://127.0.0.1:5010; 
    } 

    location/{ 
      root /siteroot/static; 
    } 


    # redirect server error pages to the static page /50x.html 
    error_page 404 %(ROOT)s/web/XXX/public/404.html; 
    error_page 500 502 503 504 %(ROOT)s/web/XXX/public/50x.html; 
} 
+0

Выполняется ли запрос в 'members-access.log' или перенаправляется на' location/'? Обычно правило, подобное '^ ~ something', имеет приоритет над'/'. – Wolph

+1

Кроме того, я голосую за переход на 'serverfault', поскольку это не имеет никакого отношения к программированию. – Wolph

+0

@WoLpH: он входит в доступ к членам, независимо от того, как он обслуживается. –

ответ

1

После включения отладки Nginx, то получается, что Nginx правильно обратное проксирование с фоновым приложением. Это фоновое приложение Pylons, которое обслуживает статический файл as-is вместо выполнения контроллера. Кажется, что Nginx работает нормально.

Смежные вопросы