声明:

每个人的情况都不一样,所以大家在看教程的时候自行斟酌,最好先扫一遍,再来根据自身情况进行操作。同时,遇到的问题也可能不尽相同,要灵活处理。

了解:

Apollo是从原始ActiveMQ的基础构建一个新的更快的,更可靠的,使用完全不同的线程和消息调度架构来实现的。

Apollo是一个多协议的代理,支持MQTT,WebSockets等等。

MQTT服务器其实相当于一个转发者的角色,也相当于一个公众平台,所有客户端连接到此平台进行消息主题的发布及订阅。服务器其实是一个消息中转站

一、安装Java JDK:

 

1、 查看自己系统位数。

输命令 getconf LONG_BIT ,会返回系统位数

2、查看jdk是否安装。

由于搭建 Apollo 环境变量需要有 JAVA_HOME,这个时候需要确认下系统中是否已经安装有jdk。确认办法为输入命令:java -version  (我的未安装)

3、 下载JDK

-- 下载Linux x64版本压java jdk缩包,注意是tar.gz后缀名。

4、 创建java目录

-- 在/usr/local/中创建java目录

-- 将下载好的jdk压缩包通过ftp上传至Center OS的java目录中

5、 配置环境

-- 进入java路径下

-- 解压到当前目录

tar –zxvf jdk-8u221-linux-x64.tar.gz

-- 配置profile

 vi /etc/profile    //(编辑profile)

在最后面,done后面开始添加内容:

export JAVA_HOME=/usr/local/java/jdk1.8.0_221

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

注意:路径和jdk 名称都要对应自己的。

配置完毕之后,使用source /etc/profile  重置配置文件,使其生效。

使用 java –version 查看安装的jdk版本。

二、配置Apollo

1、 创建目录,解压Apollo压缩包。

-- 在/usr/local/路径下创建Apollo目录,放置压缩包。

-- tar –zxvf  apache-apollo-1.7.-unix-distro.tar.gz

2、 进入bin文件夹,运行./apollo脚本,可查看帮助。

3、 创建一个Broker(MQTT Broker MQTT代理)在bin目录:

-- 输入
./apollo create MqttBroker // (MqttBrokera --> 可自己定义名称)

输入 ls,蓝色的MqttBroker即为你所创建的Broker

进入Broker目录,看到各个文件夹:

bin——实例的启动脚本

etc——实例的配置文件

data——消息持久化数据

log——运行日志

tmp——临时文件

4、 修改ip,让broker可被外网访问

进入你创建的需要改动的broker中,即MqttBroker/etc

vim apollo.xml       //打开修改

注意里面的ip地址,想要你的broker被外网访问,就改成0.0.0.0

(目的是允许所有ip访问,而非仅限本机)

https://127.0.0.1:61681/      http://127.0.0.1:61680/

//修改为:
<web_admin bind="http://0.0.0.0:61680"/> <web_admin bind="https://0.0.0.0:61681"/>

5、将apollo作为linux service启动

输入命令:

ln -s /usr/local/Apollo/apache-apollo-1.7.1/bin/MqttBroker/bin/apollo-broker-service /etc/init.d/apollo

注意:上面是一句话,apollo-broker-service和/etc/init.d/apollo有一个空格,不然后面会出问题。(坑爹)

再输入:

chkconfig apollo --add

注意:add前面是两条 -

至此,看似 Apollo部署完成,默认账号和密码为admin/password

注意:看似完成了,其实不然,还有很多坑在后面……

另外:进入  /usr/local/Apollo/apache-apollo-1.7.1/bin/MqttBroker/bin,

./apollo-broker-service start

6、在浏览器输入服务器IP和端口号61680,不成功,怎么办。(未开放端口)

firewall-cmd --state   //查看当前firewall状态

分析:上次我装Apache的时候,开放80端口后,关闭了防火墙。

解决:所以现在要打开防火墙,开放我们的端口。

 systemctl start firewalld    //打开防火墙

 firewall-cmd --state          //查看当前firewall状态

firewall-cmd --list-ports    //查看已经开放的端口:

这里显示的是我上次部署Apache开放的80端口

 //开放61680端口:(控制台端口)
firewall-cmd --zone=public --add-port=/tcp --permanent // 开放61613端口:(mqtt设备连接的端口)
firewall-cmd --zone=public --add-port=/tcp --permanent //重启firewall
firewall-cmd --reload

7、再在浏览器输入服务器IP和端口号61680,不成功,怎么办。(未关闭防火墙)

分析:

// 输入
firewall-cmd --state //查看默认防火墙状态,显示running,所以不成功。

(关闭后显示notrunning,开启后显示running)

解决:关闭防火墙。

systemctl stop firewalld.service        //停止firewall systemctl disable
systemctl disable firewalld.service //禁止firewall开机启动

8、再在浏览器输入服务器IP和端口号61680,不成功,怎么办。(步骤问题,大坑)

直接解决:

// (1) 先设置好开放的端口:
firewall-cmd --zone=public --add-port=/tcp --permanent
firewall-cmd --zone=public --add-port=/tcp --permanent // (2)重启firewall
firewall-cmd --reload //(3) 把防火墙关了
systemctl stop firewalld.service // (4) 再开始服务
systemctl start firewalld.service // (5) 再开防火墙
systemctl start firewalld

在浏览器输入:服务器 IP:61680  显示如下:

到此,就是完全解决了。我是买了国外的服务器,还是存在很多坑的,要注意……(别给我坑了)

三、备忘:

apollo.xml

(1)此文件中设置了IP地址和端口号,设置访问用户组和访问权限。

(2)默认情况下,需要用户名和密码登陆网页,同时,MQTT设备连接服务器,也需要用户名和密码,默认情况下和登陆网页的相同。

(3)如果需求其他用户名和密码,则需要在users.properties中增加用户名和密码,在groups.properties中增加users组,并在组中增加在users.properties中增加的成员。

之后就可以使用新增加的用户名和密码进行登录。

新增加的用户名和密码进行登录可在浏览器登陆控制台修改。

-- 浏览器输入你的IP和61680

-- 点击Configuration

-- 选择groups.properties (配置用户组)

允许在一个组中放置多个用户。

如:  admins = admin|zhangsan

默认只有admin,要添加用户,即  | 用户名

-- 最后选择users.properties

给上一步添加的zhangsan用户设置密码

在原来的admin=password后面添加,

-- 现在就可以打开浏览器,输入ip和端口61680

在Login下输入zhangsan   输入密码123456,即可进入控制台。

Configuration 配置信息:

-- users.properties:用户名和密码在此设置

-- apollo.xml:web访问端口,和各个连接类型端口

// http访问端口
<web_admin bind="http://0.0.0.0:"/> // https访问端口
<web_admin bind="https://0.0.0.0:"/> // 连接者,tcp连接端口,最大连接数为2000
<connector id="tcp" bind="tcp://0.0.0.0:" connection_limit=""/> // 连接者,tls连接端口,最大连接数为2000
<connector id="tls" bind="tls://0.0.0.0:" connection_limit=""/> // 连接者,Websocket连接端口,最大连接数为2000
<connector id="ws" bind="ws://0.0.0.0:" connection_limit=""/> //连接者,Secure Websocket连接端口,最大连接数为2000
<connector id="wss" bind="wss://0.0.0.0:" connection_limit=""/>

log4j.properties:Apache的日志库配置

groups.propertiess:允许有多个用户

login .conf:配置一些登陆校验配置,比如黑名单白名单、ssl证书、用户名检查文件、用户组等

keystore:存储密钥证书,在SSL时使用

black-list:黑名单ip列表

另外:开放 websocket 端口也是 tcp,   即:

firewall-cmd --zone=public --add-port=61623/tcp --permanent

Center OS 7安装 Apollo的更多相关文章

  1. center os 7 安装 elasticSeartch

    Centos7下安装配置elasticsearch 6.3.1   1)下载 Elasticsearch 6.3.1 地址:https://artifacts.elastic.co/downloads ...

  2. Center OS mongodb安装

    一.下载        1.#cd /usr/local/src     2.#wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2. ...

  3. Center OS 7 安装 $$

    资料来自网络,收集整理做个备忘 1. 安装Python # yum install python-setuptools && easy_install pip 2. 安装$$ # pi ...

  4. center os

    CentOS.Ubuntu.Debian三个linux比较异同 Center OS 7 安装 $$ center os 安装mysql5.6 Linux学习之Center os网络配置 Cent Os ...

  5. 【我的Android进阶之旅】解决Center OS 64位系统编译Android APP报错error=2和finished with non-zero exit value 127

    一.错误描述 1.问题 java.io.IOException: error=2, 没有那个文件或目录 今天在刚重新搭建好的64位的Center OS上安装好了Android SDK,Jenkins, ...

  6. Center OS 7 通过Docker部署yapi

    Center OS 7 通过Docker部署yapi 版本要求 Linux Center OS 7 安装Docker #Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前 ...

  7. center os 安装mysql5.6

    软件 MySQL-server-5.6.13-1.el6.x86_64.rpm MySQL-client-5.6.13-1.el6.x86_64.rpm 安装命令 rpm -ivh MySQL-ser ...

  8. center os 7最小化安装后按table无法补全命令的问题

    闲来无趣,这两天huskiesir又重新安装了下center os 7操作系统,结果呢,发现一个问题:按table键无法补全命令啊. 咦,奇怪了,这次怎么回事,完全没遇到过啊.哦,回想了一下,和以往的 ...

  9. Center OS 7 Apache安装配置

    感谢:https://blog.csdn.net/u014157384/article/details/79497761 该作者的帮助. 自己购买了国外的服务器,想把我的网页放到服务器,网页是以web ...

随机推荐

  1. Python之os.path.join()

    os.path.join()函数用于路径拼接文件路径. os.path.join()函数中可以传入多个路径: 会从第一个以”/”开头的参数开始拼接,之前的参数全部丢弃. 以上一种情况为先.在上一种情况 ...

  2. 9、springcloud整合logback打印sql语句

    Logback是由log4j创始人设计的又一个开源日志组件.logback当前分成三个模块:logback-core.logback- classic和logback-access.logback-c ...

  3. css3两个汤圆亲吻动效

    效果图: 模板来源:https://www.17sucai.com/pins/demo-show?id=35132 自己仿写出来的效果图: 笔记: 1.transform:translate(-50% ...

  4. 视频专家之路【二】:ffmpeg工具的使用

    本文是听了雷宵骅大神的课之后的总结,部分内容借用了其PPT的内容,如有侵权请告知删除. 雷宵骅大神的博客为:https://blog.csdn.net/leixiaohua1020 要学习汽修,那么首 ...

  5. ubuntu安装及破解WebStorm11

    ubuntu安装及破解WebStorm11 下载地址:http://www.jetbrains.com/webstorm/download/#section=linux-version 1.qingy ...

  6. html根标签设置font-size为100px,使用rem,body没设置字体大小

    今天使用了rem来写样式,前提是要给html设置font-size:100px;这样在计算比例时相对方便点:结果在将一个span标签设置为display:inline-block;时发现span不能能 ...

  7. h5移动端局部放大效果

    首先添加zoom.js (function (root, factory) { if (typeof exports === 'object' && typeof module === ...

  8. cartographer和ROS的坐标系关系

    参考定义见:backpack_3d.lua    Local map frame是一次slam过程中的原点.但是现在cartographer支持Incremental mapping.global m ...

  9. TESTNG听录音笔记

    1. 是什么:有了它可以管理测试用例,做数据驱动,多线程模式下case的鲍旭类型 2. 如何生成testng的xml文件 -- based on Eclipse Eclipse里装上testn插件,指 ...

  10. angularjs 中实现 load more 功能

    在UI 我们经常需要render 一些集合, 如果集合数据过多,那我们可能会采取分页的解决方案,本文是另外一种解决方法,就是当集合数量大于一定数量的时候显示一个 加载更多按钮,点击后,自动加载指定数量 ...