在http://chenx1242.blog.51cto.com/10430133/1874225这个文章里,我们配置了mq而且在后面的web界面里验证了已经有消息队列生成。但是细心的朋友应该会发现一个BUG,实验机器是2核4G无外网,但是是怎么登陆web界面的呢?
因为消息队列是一个很重要的一环啊,它就好比食道一样,食物通过食道才能到达胃进行吸收,同理activemq也要好好被保护起来。所以一般来说,mq本体的服务器是不配置外网的,但是会另找一个服务器建立一个转发规则,然后我们去访问“转发规则”服务器。
于是我们选择一台服务器,这个服务器几核几G不重要,就要求带宽要大一点点。
首先我们要打开linux的ipv4转发规则,# vim /etc/sysctl.conf,确定里面net.ipv4.ip_forward = 1,如图:
然后,需要#service network restart使其生效。
完事之后才是正式的配置iptables环节。
首先我们要明白我们的目的,
1)mq的web界面端口是8161,我们需要让mq服务器的8161信息可以抵达这个“转发服务器”;
2)而我们在web界面8161的一举一动也要能进入mq服务器;
所以我们需要在linux命令行里先后输入如下内容:
#-A FORWARD -d 转发服务器内网ip/32 -p tcp -m tcp --dport 8161 -j ACCEPT
#-A FORWARD -s 转发服务器内网ip/32 -p tcp -m tcp --dport 8161 -j ACCEPT
#iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8161 -j DNAT --to-destination mq服务器内网ip:8161
#iptables -t nat -A POSTROUTING -p tcp -m tcp --dport 8161 -j SNAT --to-source 转发服务器内网ip
输入之后,#service iptables save,#service iptables restart。
这样在启动mq之后,我们就可以访问这个“转发服务器”的外网ip地址:8161/admin这个网页来查看mq的实时情况了。