Nginx + Tornado静态文件不是由nginx处理的,为什么?

时间:2013-10-02 09:52:14

标签: python nginx config tornado

我正在尝试在nginx代理后面设置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,它不知道该怎么做。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

嗯,它实际上必须是^~ /html/,但我真的不知道它意味着什么/有什么区别,所以如果有人能够启发我会很酷。

答案 1 :(得分:0)

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

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;
    }
}