Nginx-try_files:如何设置远程文件(URL)?

时间:2019-10-30 03:38:50

标签: reactjs nginx react-router nginx-config

我有一个使用浏览器历史记录的React单页应用程序,基本名称是“邀请”,这是我当前使用本地html文件的nginx配置:

server{
    listen 9999;
    server_name 0.0.0.0;
    access_log  /var/log/nginx/activity_access.log;
    error_log /var/log/nginx/activity_error.log;
    location /invite {
        root html;
        index index.html;
        try_files $uri /invite/index.html;
    }
}

上面的配置效果很好。

但是我想将本地html文件设置为cdn上的html文件。我该怎么办?这是我的伪代码:

server{
    listen 9999;
    server_name 0.0.0.0;
    access_log  /var/log/nginx/activity_access.log;
    error_log /var/log/nginx/activity_error.log;
    location /invite {
        root html;
        index index.html;
        try_files $uri https://mycdn.com/invite/index.html;
    }
}

谢谢!

1 个答案:

答案 0 :(得分:1)

try_files语句中的最后一个参数只能为内部重定向指定URI。请改用命名位置。

例如:

location /invite {
    ...
    try_files $uri @redirect;
}
location @redirect {
    return 301 https://mycdn.com/invite/index.html;
}

有关详细信息,请参见this document


要使用反向代理而不是重定向,请使用:

location @redirect {
    rewrite ^ /invite/index.html break;
    proxy_pass https://mycdn.com;
}