Я пытаюсь провести Блестящий сервер в подпутье / shiny / моего веб-сайта. Используя конфигурацию ниже, я могу получить доступ к своему демонстрационному приложению через www.example.com/shiny/demo/.
Однако, когда я исключаю последнюю косую черту из URI, я попадаю на сайт www.example.com/demo/, которого не существует. Я не знаю, какая часть моей конфигурации приводит к этому перенаправлению: хотя у меня rewrite_log on
Я ничего не вижу в error.log. Если я удалю перезапись или отброшу косую черту из proxy_pass, все перестанет работать. Завершающая косая черта в директиве местоположения не является строго необходимой (я думаю?), Но я бы предпочел оставить ее, ее удаление, похоже, тоже не имеет значения. Я не уверен, нужен ли мне proxy_redirect, но его удаление не решает проблему.
Любые предложения о том, как я могу исправить свою конфигурацию, чтобы перенаправление из / shiny / demo в / demo / вместо этого переходило в / shiny / demo /?
Моя конфигурация с соответствующим расположением внизу:
# Redirect to HTTPS
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
# Redirect to www subdomain
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate /path/to/cert;
ssl_certificate_key /path/to/key;
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" always;
server_name example.com;
return 301 https://www.example.com$request_uri;
}
# Main server
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
root /path/to/root;
index index.php;
server_name www.example.com;
ssl_certificate /path/to/cert;
ssl_certificate_key /path/to/key;
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;
ssl_session_tickets off;
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" always;
location / {
if ($request_uri ~ ^/(.*)\.html$) { return 302 /$1; }
try_files $uri /$uri $uri.html $uri.php$is_args$query_string;
}
location ~ \.php$ {
if ($request_uri ~ ^/([^?]*)\.php($|\?)) { return 302 /$1$is_args$query_string; }
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ^~ /shiny/ {
rewrite_log on;
rewrite ^/shiny/(.*)$ /$1 break;
proxy_pass http://localhost:1234/;
proxy_redirect http://localhost:1234/ $scheme://$server_name/shiny/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
}
}