Python Nginx+龙卷风静态文件不由Nginx处理,为什么?

Python Nginx+龙卷风静态文件不由Nginx处理,为什么?,python,nginx,config,tornado,Python,Nginx,Config,Tornado,我正在尝试在nginx proxy后面设置Tornado服务器,以下是配置的相关部分: server { listen 80; server_name localhost; location html/ { root /srv/www/intj.com/html; index login.html; if ($query_string) { expires max; } }

我正在尝试在nginx proxy后面设置Tornado服务器,以下是配置的相关部分:

server {
    listen 80;
    server_name localhost;

    location html/ {
        root /srv/www/intj.com/html;
        index login.html;
        if ($query_string) {
            expires max;
        }
    }

    location = /favicon.ico {
        rewrite (.*) /html/favicon.ico;
    }

    location = /robots.txt {
        rewrite (.*) /html/robots.txt;
    }

    location / {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://localhost:8888;
    }
}
我可以通过nginx访问我的Python服务器,但是当我请求一个静态页面时,比如login.html,它位于/srv/www/intj.com/html/login.html中,而不是加载静态文件,请求被转发到Tornado,Tornado不知道如何处理它


我做错了什么?

嗯,它实际上必须是^~/html/,但我真的不知道它的意思/区别是什么,所以如果有人能启发我,那就太酷了。

试试这个,告诉我它是怎么回事

server {
    listen 80;
    server_name localhost;

    location / {
        if($query_string) {
            root /srv/www/intj.com/html;
            index index.html;
            try_files $uri $uri/;
        }
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://localhost:8888;
    }
}

login.html类似于http://example.com/login.html? 或http://example.com/html/login.html?@穆罕默德·布沙迪,这是第二个。对不起,忘了提了。if应该确保没有问题吗?@MohammadAbuShady Umm。。。不,我的理解是,这只与缓存相关。也就是说,如果有人请求一个资源,它可能是一个提供一些查询字符串的HTML页面,那么该页面不应该被缓存。例如,如果您没有成功登录,则响应登录页面必须过期,并且不能错误地再次提供服务。如果不是这样的话,那真的很奇怪……根据,我认为你在做相反的事情,我认为应该是这样的$查询字符串或类似的东西我认为/html/而不是html/应该可以工作,但我没有尝试这个。通过http请求的每个正常路径都应以/开头。