複数のコンテキスト パスを使用して同じ場所でプロキシ パスを許可する方法

複数のコンテキスト パスを使用して同じ場所でプロキシ パスを許可する方法
server {
    listen 80;
    server_name example.com www.example.com; 
    

場所 /コンソール {

    if ($request_method !~ ^(GET|POST)$) {
        return 405 "Not allowed";
    }
     
    set $consolalb alb.backend;
    proxy_pass http://$consolalb/workspace/;
    
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Custom-Forwarded-Proto $http_x_forwarded_proto;        
    proxy_cache_bypass $http_upgrade;      
    }
}

ユーザー要求が ngnix コンテナ リバース プロキシに到達するシナリオがあります。ホームページそして、バックエンド alb (例: alb.backend) に転送する必要があり、alb はコンテキスト パス /workspace を使用して Oracle Hyperion アプリケーション サーバーにマップされます。

上記の設定により、初期ログインページ /workspace/index.jsp をロードすることができ、それに加えて、異なるコンテキストパスを持つ追加のポップアップが表示され、ページが見つからないなどのエラーが発生します。ページが見つからない URL は次のようになります。相互運用性参考:など、すべてのポップアップにページが見つからないというエラーが表示されます。

転送方法についてアドバイスが必要ですホームページ受信ユーザーリクエストは http://$consolalb/workspace/ へ。初回およびそれ以降のポップリクエストは http://$consolalb/* へ。

答え1

アプリケーションは、作成する出力に URL を生成します。したがって、正しい URL が生成されるように、正しいベース URL を使用するようにアプリケーションを構成する必要があります。

関連情報