У меня есть приложение узла, которое принимает все маршруты, запускающиеся в /
. Nginx / Пассажирская конфигурация для него:
server {
listen 8889;
server_name localhost;
location / {
root /var/www/portal/public;
passenger_enabled on;
passenger_min_instances 1;
passenger_app_env production;
}
location ~ /error/(.+) {
alias /var/www/error-pages/$1;
}
}
Я хочу переместить приложение для выполнения в /portal
ничего не изменяя о приложении узла. Я попробовал что-то вроде этого без большой удачи:
server {
listen 8889;
server_name localhost;
root /var/www/portal/public;
location / {
return 301 /client;
}
location /portal {
passenger_base_uri /;
passenger_app_root /var/www/portal;
passenger_document_root /var/www/portal/public;
passenger_min_instances 1;
passenger_app_env production;
passenger_enabled on;
}
location ~ /error/(.+) {
alias /var/www/error-pages/$1;
}
}
Проблема состоит в том, что приложение продолжает получать запросы, снабженные префиксом /portal
вместо /
. Я пытался добавить rewrite
операторы, но они, кажется, не влияют на то, что Пассажир передает в приложение.
Измените пассажира_база_ури /;
на пассажира_база_ури /portal;
.
8.2.2. пассажир_base_uri
Используется, чтобы указать, что данный URI является отдельным приложением, которое должно обслуживаться Phusion Passenger.