如果存在静态文件,则忽略Nginx proxy_pass

时间:2010-09-13 22:05:08

标签: proxy nginx

我正在尝试让nginx 总是代理某些请求,即使存在静态文件也是如此。我有代理工作正常,除非nginx似乎坚持服务文件的静态版本,即使已声明代理指令。

因此,在下面的配置中,如果存在一个名为“/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;
}

1 个答案:

答案 0 :(得分:1)

在打开nginx调试之后,事实证明nginx正确地反向代理到后端应用程序。后端Pylons应用程序按原样提供静态文件,而不是执行控制器。 Nginx似乎运作正常。