EMQ服务器搭建

EMQ服务器搭建

1.安装acme.sh并设置

# 安装acme.sh
curl  https://get.acme.sh | sh
# 设置alias
alias acme.sh=~/.acme.sh/acme.sh
# 域名商API ID
export DP_Id="******"
# 域名商API Key
export DP_Key="*******"
# 生成证书
acme.sh --issue --dns dns_dp -d netapi.info -d *.netapi.info -d *.xd5u.com
# 创建证书文件夹
mkdir CertSsl
# 安装证书文件
acme.sh --installcert --dns dns_dp -d netapi.info -d *.netapi.info -d *.xd5u.com --key-file /root/CertSsl/ssl.key --cert-file /root/CertSsl/ssl.cer

2.安装Emq并设置

# 下载emq文件
wget https://www.emqx.io/downloads/broker/v3.1.0/emqx-ubuntu18.04-v3.1.0_amd64.deb
# 安装emq服务
sudo dpkg -i emqx-ubuntu18.04-v3.1.0_amd64.deb
# 启动服务
service emqx start
# 停止服务
service emqx stop
# 重启服务
service emqx restart

3.安装Nginx并设置

# 安装nginx
sudo apt-get install nginx
# 启动nginx服务
sudo service nginx start
# 添加nginx配置
vim /etc/nginx/sites-available/emqx
# 配置文件内容
server {
    listen 443;
    listen 80;
    server_name emq.netapi.info; 
    
    ssl on;
    ssl_certificate /root/CertSsl/ssl.cer;
    ssl_certificate_key /root/CertSsl/ssl.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

    location / {
        root   html; 
        index  index.html index.htm;
    }

    location = /mqtt {
      
        # 8083就是我们的emq的websocket的端口号
        proxy_pass http://emq.netapi.info:8083;
        proxy_redirect off;
        proxy_set_header Host emq.netapi.info:8083;

        proxy_set_header Sec-WebSocket-Protocol mqtt;
        
        # 这个是与你的 js客户端的库有关系,本博文的不需要,为了兼顾以后小伙伴,我这里注释了下! 
        #more_clear_headers Sec-WebSocket-Protocol;

        # 这些都是 websocket必须要配置的
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

# 建立软连接
sudo ln -s /etc/nginx/sites-available/emqx /etc/nginx/sites-enabled/
# 检查配置
sudo nginx -t
# 加载配置文件
nginx -s reload

安装证书

0 6 * * * "/root/.acme.sh"/acme.sh --installcert --dns dns_dp -d netapi.info -d *.netapi.info --key-file /root/CertSsl/ssl.key --cert-file /root/CertSsl/ssl.cer --reloadcmd "systemctl restart ngrokd.service"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章