如何允許代理程式通過相同位置、多個上下文路徑

如何允許代理程式通過相同位置、多個上下文路徑
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 容器反向代理。www.example.com/consol它必須轉送到後端 alb(例如 alb.backend),並且 alb 透過上下文路徑 /workspace 映射到 oracle hyperion 應用程式伺服器。

透過上述配置,我可以加載初始登入頁面 /workspace/index.jsp,同時獲得具有不同上下文路徑的其他彈出窗口,並出現諸如找不到頁面之類的錯誤。那些未找到的頁面網址看起來像www.example.com/interop,www.example.com/mypage.jsp等等,所有彈出視窗都有頁面未找到錯誤。

我需要一些建議如何轉發www.example.com/consol傳入使用者請求到 http://$consolalb/workspace/;第一次和隨後的 pop 請求到 http://$consolalb/*

答案1

您的應用程式在它創建的輸出中產生 URL。因此,您需要將應用程式設定為使用正確的基本 URL,以便它產生的 URL 正確。

相關內容