我正在尝试在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,它不知道该怎么做。
我做错了什么?
答案 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;
}
}