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"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章