Nginx Passenger Node 应用程序 URI 重写

Nginx Passenger Node 应用程序 URI 重写

我有一个节点应用程序,它接受以 开头的所有路由/。它的 Nginx / Passenger 配置为:

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语句,但它们似乎不会影响 Passenger 传递到应用程序的内容。

答案1

改成。passenger_base_uri /;passenger_base_uri /portal;

官方文档

8.2.2. 乘客基地

用于指定给定的 URI 是应由 Phusion Passenger 提供服务的独特应用程序。

相关内容