Приложение узла пассажира Nginx URI переписывает

У меня есть приложение узла, которое принимает все маршруты, запускающиеся в /. 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 операторы, но они, кажется, не влияют на то, что Пассажир передает в приложение.

0
задан 17 October 2014 в 21:56
1 ответ

Измените пассажира_база_ури /; на пассажира_база_ури /portal;.

Из официальной документации :

8.2.2. пассажир_base_uri

Используется, чтобы указать, что данный URI является отдельным приложением, которое должно обслуживаться Phusion Passenger.

0
ответ дан 5 December 2019 в 13:05

Теги

Похожие вопросы