#regex #nginx #nginx-location #nginx-reverse-proxy
#регулярное выражение #nginx #nginx-location #nginx-reverse-proxy
Вопрос:
Я пытаюсь определить два разных местоположения. Первый (A) обслуживает файлы под псевдонимом. Второй (B) из proxy_pass.
(B) использует регулярное выражение для сопоставления с путем.
Они оба работают отдельно.
# configuration (A)
location /some-path {
alias /dev/folder/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
# configuration (B)
location ~ ^/some-path/([w-] -[w$] )/(w ) {
proxy_pass http://web-app/some-path/$1/$2;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
Я бы хотел, чтобы местоположения отвечали на эти URL-адреса :
- http://domain.local/some-path/example-000 (A)
- http://domain.local/some-path/example-000/something (B)
К сожалению http://domain.local/some-path/example-000 возвращает 404 из приложения, стоящего за (B).
Приложение возвращает это странное сообщение 404 "/some-path/example-000/index"
Какие изменения я могу внести, чтобы это заработало?
Комментарии:
1. Что
/some-path/example-000
должно возвращаться. Похоже, что оно преобразуется в/some-path/example-000/index.html
в блоке (A), который затем обрабатывается блоком (B).2. Это именно то, что происходит.
/some-path/example-000
служит/dev/folder/dist/example-000/index.html
. Если это нормальное поведение, что я могу сделать, чтобы оба URL были доступны?