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 正確。