我正在以两种不同的方式初级化经纪人。一个侦听0.0.0.0
,另一个侦听节点IP,即172.29.245.17
。
经纪人1:
[root@amq-1 apache-artemis-2.4.0]# bin/artemis create --name BROKER-1 /var/tmp/BROKER-1 --user admin --password admin --http-host 0.0.0.0 --http-port 8080 --allow-anonymous
经纪人2:
[root@amq-1 apache-artemis-2.4.0]# bin/artemis create --name BROKER-2 /var/tmp/BROKER-2 --user admin --password admin --http-host 172.29.245.17 --http-port 8080 --allow-anonymous
正如您所看到的,唯一的区别是要监听的IP。一个对所有人开放(0.0.0.0)。另一个只监听1个特定的IP()。
访问Broker-2的GUI(一个监听172.29.245.17
)
现在,当我启动Broker-1(听0.0.0.0
)时,我被重定向到/console/jvm/connect
错误状态::
[Core] Operation unknown failed due to: java.lang.Exception : Origin http://172.29.245.17:8080 is not allowed to call this agent
[Core] ActiveMQ Management Console started
[Window] Uncaught TypeError: Cannot read property 'apply' of undefined (http://172.29.245.17:8080/console/app/app.js?0d5300a336117972:16:14366)
[Window] Uncaught TypeError: Cannot read property 'apply' of undefined (http://172.29.245.17:8080/console/app/app.js?0d5300a336117972:16:14366)
[Window] Uncaught TypeError: Cannot read property 'apply' of undefined (http://172.29.245.17:8080/console/app/app.js?0d5300a336117972:16:14366)
[Window] Uncaught TypeError: Cannot read property 'apply' of undefined (http://172.29.245.17:8080/console/app/app.js?0d5300a336117972:16:14366)
对于Broker-1,jolokia-access.xml
状态::
<restrict>
<cors>
<!-- Allow cross origin access from 0.0.0.0 ... -->
<allow-origin>*://0.0.0.0*</allow-origin>
<!-- Check for the proper origin on the server side, too -->
<strict-checking/>
</cors>
</restrict>
对于Broker-2,jolokia-access.xml
状态:
<restrict>
<cors>
<!-- Allow cross origin access from 172.29.245.17 ... -->
<allow-origin>*://172.29.245.17*</allow-origin>
<!-- Check for the proper origin on the server side, too -->
<strict-checking/>
</cors>
</restrict>
当我试图听0.0.0.0
时,我无法弄清楚为什么会出现这个问题。有任何想法吗 ?
所有其他配置均为默认配置。我没有修改任何其他配置。
答案 0 :(得分:2)
我认为这里的问题是你在Broker-1上的jolokia-access.xml正在使用它:
<allow-origin>*://0.0.0.0*</allow-origin>
但是,在您的浏览器中,您尝试通过172.29.245.17:8080
访问控制台,这是基于jolokia-access.xml
不允许的。因此,您需要更改浏览器以连接到0.0.0.0:8080
(仅在代理/控制台在本地运行时才能运行)或更改jolokia-access.xml
以允许您实际使用的IP:端口用来连接。
您可以在Jolokia security documentation中了解有关jolokia-access.xml的更多信息。