我可以理解...我们有一个使用NGINX代理隐藏的ActiveMQ需求,但我不知道如何设置。
对于ActiveMQ,我已为所有协议设置了不同的端口。
<transportConnectors>
<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
<transportConnector name="openwire" uri="tcp://0.0.0.0:62716?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="amqp" uri="amqp://0.0.0.0:5782?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="stomp" uri="stomp://0.0.0.0:62713?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="mqtt" uri="mqtt://0.0.0.0:1993?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
<transportConnector name="ws" uri="ws://0.0.0.0:62714?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
</transportConnectors>
以下是类似这样的nginx配置:
server {
listen *:61616;
server_name 192.168.210.15;
index index.html index.htm index.php;
access_log /var/log/nginx/k1.access.log combined;
error_log /var/log/nginx/k1.error.log;
location / {
proxy_pass http://localhost:62716;
proxy_read_timeout 90;
proxy_connect_timeout 90;
proxy_redirect off;
proxy_method stream;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Proxy "";
}
}
(同样适用于其它 5 个重新定义的端口)
我以为这会暴露默认的 ActiveMQ 端口,并且 Nginx 会将其映射到新的定义,但实际上并不起作用。
我们正在使用 NodeJs 库 amqp10 的 3.1.4 版本进行通信。
而且所有端口在服务器上都是启用的......如果使用没有 nginx 代理的标准端口,则可以正常工作。
有人知道我漏掉了什么吗?感谢任何想法。