У меня nginx, прослушивающий порт 80 и R Shiny Server за брандмауэром на порту 3838. Существует обратный прокси-сервер для отправки всех запросов в каталог /internal
через диалоговое окно ввода пароля в браузере, прежде чем он перейдет к Блестящий сервер.
Я пытаюсь выяснить, как превратить URL-адреса, которые вводит пользователь, например http://my.domain/internal/SomeProgram
в http://my.domain/internal/SomeProgram.Rmd
, чтобы сервер Shiny мог их обрабатывать. Я не знаю, использовать ли try_files
или что-то вроде:
if (!-e $request_filename) {
rewrite ^(.*)$ /$1.Rmd;
}
Эта часть ниже работает, но я не знаю, где или как вставить вышеуказанный код (или использовать совершенно другой код) чтобы сделать расширение без расширения на .Rmd
:
location /internal {
auth_basic "Admin Area";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://localhost:3838/internal/;
proxy_redirect / $scheme://$http_host/;
}
location /shiny/ {
rewrite ^/shiny/(.*)$ /$1 break;
proxy_pass http://localhost:3838/;
proxy_redirect / $scheme://$http_host/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 20d;
proxy_buffering off;
}
Любая идея будет принята с благодарностью. Спасибо:)