Я пытаюсь маршрутизировать трафик между несколькими вышестоящими серверами на nginx следующим образом:
upstream app_a {
server unix:/tmp/app_a.sock fail_timeout=10;
# For a TCP configuration:
# server localhost:8000 fail_timeout=0;
}
server {
#listen 80; ## listen for ipv4; this line is default and implied
#listen [::]:80 default ipv6only=on; ## listen for ipv6
index index.html index.htm;
server_name localhost;
root /home/ubuntu/app_a/www/staging/static;
location ~ ^/app_a/(.*)$ {
try_files $1 @proxy_to_app_a;
}
location @proxy_to_app_a {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://app_a;
}
К сожалению, приложения не знают о полном URIS и ожидают, что будут сидеть на root - что означает, что мне нужнопереписать URI при передаче в приложение, поэтому я подумал, что это может работать:
location ~ ^/app_a/(.*)$ {
try_files $1 @proxy_to_app_a;
}
приложение работает нормально, если местоположение только /
(из-за вышеупомянутой проблемы с корнем), ноэто решение на основе регулярных выражений, похоже, не работает.Что мне нужно сделать, чтобы приложение получило /
вместо app_a
в URL?
Спасибо