server {
listen 80;
server_name example.com www.example.com;
位置 /consol {
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,同时获取具有不同上下文路径的附加弹出窗口,并出现页面未找到等错误。这些页面未找到的 URL 如下所示www.example.com/interop,www.example.com/mypage.jsp等等,所有弹出窗口都有页面未找到错误。
我需要一些关于如何转发的建议www.example.com/consol首次传入用户请求到 http://$consolalb/workspace/;后续弹出请求到 http://$consolalb/*
答案1
您的应用程序会在其创建的输出中生成 URL。因此,您需要配置应用程序以使用正确的基本 URL,以便其生成的 URL 正确。