声明:
一人一人の状況が異なっているので、我々は独自の裁量のチュートリアルを見ると、それは、再びそれを掃く、自分の状況に応じて動作させるために戻ってくるのがベストです。同時に、問題も柔軟であることが、異なっていてもよいです。
学習:
アポロは、達成するために、完全に異なるスレッドとメッセージスケジューリングアーキテクチャを使用して、オリジナルのActiveMQから新しいより速く、より信頼性の高い基盤を構築することです。
アポロは、その上のMQTT、WebSocketを、およびをサポートするマルチ代理店契約、です。
MQTTサーバーは、フォワーダの同等の役割、公共プラットフォームの同等、パブリッシュおよびメッセージのトピックを購読するこのプラットフォームに接続しているすべてのクライアントです。実際には、サーバーは、メッセージのための通過点であります
まず、JavaのJDKをインストールします。
1、お使いのシステムの数字を確認してください。
コマンドgetconfのLONG_BITを失い、システムは、ビットの数を返します
2は、JDKがインストールされている参照してください。
アポロ環境変数JAVA_HOMEを構築する必要があるので、この時間は、システムは、JDKをインストールされているかどうかを確認する必要があります。コマンドを入力する方法を確認します。java -version(私がインストールされていません)
3、ダウンロードJDK
- tar.gz形式の拡張子に注意して、JavaのJDK減圧パッケージの、Linuxのx64バージョンをダウンロードしてください。
4. ディレクトリのJavaを作成します。
- には/ usr / local / javaディレクトリを作成します。
- FTPのjavaディレクトリを経由してセンターOSにアップロード、ダウンロード、JDKのtarball
5、環境を構成
- Javaのパスを入力します。
- 現在のディレクトリに解凍
タール-zxvf JDK-8u221-linuxの-x64.tar.gz
- 構成プロファイル
viのは/ etc / profile // (編集プロファイル)
端面に、バックコンテンツの追加を開始して行わ:
輸出JAVA_HOME = /usr/local/java/jdk1.8 .0_221 輸出JRE_HOME = $ {JAVA_HOME} / JREの 輸出CLASSPATH =。$ {JAVA_HOME} / libに:$ {} JRE_HOME / libに 輸出PATH = $ {JAVA_HOME} /ビン:$ PATHの
注:JDKのパスと名前は、自分に対応している必要があります。
設定が完了したら、ソースを使用するの/ etc /を有効にする設定ファイルをリセットするプロファイル。
インストールされたバージョンを確認するために、JDKのjava -versionを使用してください。
第二に、コンフィギュレーションアポロ
1、アポロのアーカイブを展開し、ディレクトリを作成します。
- 圧縮された配置には、/ usr / local /パスの下アポロディレクトリを作成します。
-タール-zxvfのapache-apollo- 1.7。1 -unix-distro.tar.gz
2は、ヘルプを表示する、./apolloスクリプトを実行し、binフォルダに移動します。
3、binディレクトリにあるブローカー(MQTTブローカーMQTTエージェント)を作成します。
- 入力 。 /アポロ作成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
注意:看似完成了,其实不然,还有很多坑在后面……
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=61680/tcp --permanent // 开放61613端口:(mqtt设备连接的端口) firewall-cmd --zone=public --add-port=61613/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=61680/tcp --permanent firewall-cmd --zone=public --add-port=61613/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:61680"/> // https访问端口 <web_admin bind="https://0.0.0.0:61681"/> // 连接者,tcp连接端口,最大连接数为2000 <connector id="tcp" bind="tcp://0.0.0.0:61613" connection_limit="2000"/> // 连接者,tls连接端口,最大连接数为2000 <connector id="tls" bind="tls://0.0.0.0:61614" connection_limit="2000"/> // 连接者,Websocket连接端口,最大连接数为2000 <connector id="ws" bind="ws://0.0.0.0:61623" connection_limit="2000"/> //连接者,Secure Websocket连接端口,最大连接数为2000 <connector id="wss" bind="wss://0.0.0.0:61624" connection_limit="2000"/>
log4j.properties:Apache的日志库配置
groups.propertiess:允许有多个用户
login .conf:配置一些登陆校验配置,比如黑名单白名单、ssl证书、用户名检查文件、用户组等
keystore:存储密钥证书,在SSL时使用
black-list:黑名单ip列表
另外:开放 websocket 端口也是 tcp, 即:
firewall-cmd --zone=public --add-port=61623/tcp --permanent