首页 > 代码库 > ActiveMQ部署和503的错误

ActiveMQ部署和503的错误

最近部署ActiveMQ的时候,发现有的服务器可以打开后台管理网址,有的服务器无法打开,Jetty报503 Service Unavailable。

搞了很久终于发现了问题,现将部署和解决过程做笔记如下:

安装部署步骤:

# 查看是否自带了Java
rpm -qa | grep java
# 卸载Linux自带的OpenJava
yum remove -y java
# 或者
rpm -e java

# 上传或联网下载JDK 7
rz jdk-7u79-linux-x64.rpm
# 或者
wget http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.rpm
rpm -ivh jdk-7u79-linux-x64.rpm
java -version
vi ~/.bash_profile
---------------------------------------------
export JAVA_HOME=/usr/java/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
---------------------------------------------
source ~/.bash_profile
echo $JAVA_HOME

# 上传或联网下载JDK
rz apache-activemq-5.12.1-bin.tar.gz
# 或者
wget http://archive.apache.org/dist/activemq/5.12.1/apache-activemq-5.12.1-bin.tar.gz
tar zxvf apache-activemq-5.12.1-bin.tar.gz
mv apache-activemq-5.12.1 /usr/local/activemq

# 直接改造activemq原生启动脚本来做服务引导脚本
ln -s /usr/local/activemq/bin/activemq /etc/init.d/

vi /etc/init.d/activemq
---------------------------------------------
# 第二行插入
# chkconfig: 345 63 37
# description: Auto start ActiveMQ
---------------------------------------------

# 可以设置开机启动了
chkconfig activemq on
chkconfig --list activemq

# 启动服务看看
service activemq start

# 设置防火墙
service iptables status
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 61616 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8161 -j ACCEPT
service iptables save
service iptables restart

如上部署好以后,就可以正常使用了,默认消息端口是61616,后台管理网址端口8161,直接用浏览器打开后台管理网址,界面如下:

技术分享

但是在线上服务器部署时就出了问题,无法访问后台管理网站,界面如下:

技术分享

度娘了很久,没有找到相关的解决办法,后来第N编翻看ActiveMQ官方文档的时候,看到还可以activemq console参数进行前台启动,可能会暴露出错误原因,于是命令如下:

# 先停用activemq
service activemq stop
# 手动控制台方式启动
/usr/local/activemq/bin/activemq console

于是看到一堆又一堆的输出,向上翻了N屏后最终趴到如下一句错误:

技术分享

猛然想起我曾经将这个服务器hostname改为dubbo,却没有修改hosts文件!!!

 

技术分享

如上所示在hosts中添加主机名dubbo后,正常启动activemq服务,后台管理网址终于正常了。

如此低级到剁手的错误,实属不该!!!

在此将完整修改服务器hostname的步骤记录如下,以此为戒:

# 修改主机名为server1
vi /etc/sysconfig/network
---------------------------------
HOSTNAME=server1
---------------------------------
# 修改hosts文件,让服务器认得这个名字
vi /etc/hosts
---------------------------------
127.0.0.1  server1
---------------------------------
# 重启后生效
reboot
# 如果暂时不能重启,可以使用如下命令临时生效
hostname server1
# 退出
exit
# 重新登陆(SSH重连)就可以看到主机名生效了
[root@server1 ~]#

ActiveMQ部署和503的错误