Nginx - try_files: как настроить удаленный файл (URL)? - PullRequest
1 голос
/ 30 октября 2019

У меня есть одностраничное приложение React, которое использует историю браузера, а базовое имя - «приглашение», что является моей текущей конфигурацией nginx с использованием собственных 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 /invite/index.html;
    }
}

Приведенная выше конфигурация работает очень хорошо.

Но я хочу установить свой локальный HTML-файл в HTML-файл на CDN. Что я должен делать? Это мой псевдокод:

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 Ответ

1 голос
/ 30 октября 2019

Последний параметр в операторе try_files может указывать URI только для внутреннего перенаправления . Вместо этого используйте именованное местоположение.

Например:

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

Подробнее см. этот документ .


Использование обратного прокси-серверавместо перенаправления используйте:

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