我知道这是Apache 和 JBoss 配置 101但我就是想不通。
我正在配置 Apache 2.2.3 以用于mod_proxy_http
将请求转发到 JBoss 5.1.0 GA。这个想法是,将有多个 JBoss 实例由单个 Apache 支撑。
JBoss 和 Apache 都在同一个物理盒子上。
我有一个配置文件,conf.d
内容如下:
Listen 8087
<VirtualHost *:8087>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /admin-console http://127.0.0.1:8080/admin-console
ProxyPassReverse /admin-console http://127.0.0.1:8080/admin-console
<Location /admin-console>
Order deny,allow
Allow from all
Options -Indexes FollowSymLinks
</Location>
</VirtualHost>
我让 JBoss 监听绑定到 127.0.0.1 的 8080 端口。
如果我访问http://myServer:8087/管理控制台我收到登录提示,但图像丢失。如果我输入用户名和密码,浏览器将重定向到:
http://127.0.0.1:8080/admin-console/login.seam
因此,显然 JBoss 正在发送图像/CSS/等的 URL 和login.seam
本地主机的页面。
我该如何更改它?这是 Apache 中的配置,还是我应该在某个地方更改 JBoss?如果这是 JBoss 中的更改,我希望它是一个全局更改,因为我们将在每个 JBoss 实例上安装许多应用程序。至关重要的是,我不希望 JBoss 绑定到服务器的主机名,以便可以直接访问它http://myServer:8080/管理控制台。
提前致谢
富有的
答案1
我想我已经明白了:
<Location /admin-console>
Order deny,allow
Allow from all
Options -Indexes FollowSymLinks
ProxyPass http://127.0.0.1:8080/admin-console
ProxyPassReverse http://127.0.0.1:8080/admin-console
</Location>
我需要将 ProxyPass 和 ProxyPassReverse 指令放入 Location 指令内。
答案2
您是否尝试过在 URL 末尾添加斜杠?
例如
ProxyPass /admin-console/ http://127.0.0.1:8080/admin-console/
答案3
如果您可以运行类似您的盒子的 ip 地址 run.sh -b 192.168.1.100 的命令,然后再次检查。