1. 程式人生 > >ActiveMQ部署和503的錯誤

ActiveMQ部署和503的錯誤

cal pub tools.jar 啟動腳本 save http 安裝部署 tools stop

最近部署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重連)就可以看到主機名生效了
[[email protected]
/* */ ~]# 技術分享

ActiveMQ部署和503的錯誤