Я пытаюсь получить 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;
}
Выполняется ли запрос в 'members-access.log' или перенаправляется на' location/'? Обычно правило, подобное '^ ~ something', имеет приоритет над'/'. – Wolph
Кроме того, я голосую за переход на 'serverfault', поскольку это не имеет никакого отношения к программированию. – Wolph
@WoLpH: он входит в доступ к членам, независимо от того, как он обслуживается. –