一、安装Mosquitto
1.1、安装软件包
sudo yum -y install epel-release
1.2、安装Mosquetto
sudo yum -y install mosquitto
1.3、启动mosquitto
sudo systemctl start mosquitto
1.4、指定配置文件开启
mosquitto -c /etc/mosquitto/mosquitto.conf
1.5、开机自启动
sudo systemctl enable mosquitto
1.6、订阅一个主题
mosquitto_sub -t "test"
1.7、发布一个主题和消息
mosquitto_pub -t "test" -m "123456"
二、配置安全
2.1、找到并打开Mosquitto服务器的配置文件 /etc/mosquitto/mosquitto.conf
vim /etc/mosquitto/mosquitto.conf
# 将其中的配置选项allow_anonymous改为 false,禁止匿名登录
allow_anonymous false
# 将密码配置选项配置如下:
password_file /etc/mosquitto/pwfile
2.2、如果该目录下没有该文件,则进入该目录,并拷贝一份,命令如下:
cp pwfile.example pwfile
2.3、添加用户信息。在终端执行以下代码,应用mosquitto_passwd命令创建用户名 (执行以后会提示输入密码,重复2次输入之后,用户名密码配置完成。 )
# dttadmin指的是自己自定义的用户名
mosquitto_passwd -c /etc/mosquitto/pwfile dttadmin
2.4、重新启动mosquitto服务之后,用户名密码生效
mosquitto -c /etc/mosquitto/mosquitto.conf
# 后台启动
mosquitto -c /etc/mosquitto/mosquitto.conf -d
三、nginx配置代理转发mqtt
vim /usr/local/nginx/conf/nginx.conf
在配置文件的末尾加入以下配置,注意,不是在http块内,stream是与http块同级
stream {
log_format proxy '$remote_addr [$time_local] '
'$protocol $status $bytes_sent $bytes_received '
'$session_time "$upstream_addr" '
'"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';
open_log_file_cache off;
upstream mqtt_tcp_server {
server 192.168.1.129:1883;
}
server {
listen 8012;
proxy_connect_timeout 150s;
proxy_timeout 150s;
proxy_pass mqtt_tcp_server;
proxy_buffer_size 3M;
tcp_nodelay on;
}
}