共计 2712 个字符,预计需要花费 7 分钟才能阅读完成。
最近部署 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 ~]#
推荐阅读:
Spring+Log4j+ActiveMQ 实现远程记录日志——实战 + 分析 http://www.linuxidc.com/Linux/2015-12/126163.htm
Spring 下 ActiveMQ 实战 http://www.linuxidc.com/Linux/2015-11/124854.htm
Linux 系统下 ActiveMQ 安装 http://www.linuxidc.com/Linux/2012-03/55623.htm
Ubuntu 下的 ACTIVEMQ 服务器 http://www.linuxidc.com/Linux/2008-07/14587.htm
CentOS 6.5 启动 ActiveMQ 报错解决 http://www.linuxidc.com/Linux/2015-08/120898.htm
Spring+JMS+ActiveMQ+Tomcat 实现消息服务 http://www.linuxidc.com/Linux/2011-10/44632.htm
Linux 环境下面 ActiveMQ 端口号设置和 WEB 端口号设置 http://www.linuxidc.com/Linux/2012-01/51100.htm
ActiveMQ 的详细介绍 :请点这里
ActiveMQ 的下载地址 :请点这里
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-11/137050.htm