簡體   English   中英

socket.io laravel echo 在 ubuntu 的生產中不起作用

[英]socket.io laravel echo not working in production in ubuntu

我正在使用 socket.io 和 laravel 回顯服務器,在服務器上安裝了 Redis 和 SSL,但是 socket.io 文件沒有加載到生產環境中 ubuntu 服務器如果我的本地 88239478039 不需要任何配置,那么一切正常我還允許 UFW 6001 端口。

這是我的 laravel-echo-server.json 文件。

{
"authHost": "https://flowerful.initialengine.com",
"authEndpoint": "/broadcasting/auth",
"clients": [
    {
        "appId": "bb6e18dd7fd2e7aa",
        "key": "c52b04fae249d3cb303b317b281b1599"
    }
],
"rejectUnauthorized": false,
"database": "redis",
"databaseConfig": {
    "redis": {},
    "sqlite": {
        "databasePath": "/database/laravel-echo-server.sqlite"
    }
},
"devMode": true,
"host": null,
"port": "3001",
"protocol": "https",
"socketio": {},
"secureOptions": 67108864,
"sslCertPath": "/etc/letsencrypt/live/flowerful.initialengine.com/fullchain.pem",
"sslKeyPath": "/etc/letsencrypt/live/flowerful.initialengine.com/privkey.pem",
"sslCertChainPath": "",
"sslPassphrase": "",
"subscribers": {
    "http": true,
    "redis": true
},
"apiOriginAllow": {
    "allowCors": true,
    "allowOrigin": "https://flowerful.initialengine.com",
    "allowMethods": "GET, POST",
    "allowHeaders": "Origin, Content-Type, X-Auth-Token, X-Requested-With, Accept, Authorization, X-CSRF-TOKEN, X-Socket-Id"
}

}

這是在生產服務器上運行的 laravel echo 服務器。

我在不同的門戶網站上搜索並獲得一些幫助,然后我應用了以下一些內容。

  1. 允許 ufw 端口 6001
  2. 運行命令laravel-echo-server init並創建一個配置文件
  3. 給 SSL 正確的路徑

我腦海中的某些事情可能正在發生。 我安裝的虛擬主機可能是 apache2 不允許域在 6001 端口上運行

URL 不工作。

https://flowerful.initialengine.com:6001/socket.io/?EIO=3&transport=polling&t=NLFfgwB

在此處輸入圖像描述

控制台窗口瀏覽器

我認為您應該為laravel-echo-server配置生成並設置帶有.cert和“.key”擴展名的正確 SSL 文件,如下所示:

"sslCertPath": "/{path_of_ssl}/flowerful.initialengine.com.cert.combined",
"sslKeyPath": "/{path_of_ssl}/flowerful.initialengine.com.key",

就我而言,僅關閉了端口 6001。 檢查服務器是您端口上的項目服務:

curl -I localhost:your_port_here

如果您收到 http 標頭,則表示一切正常,您只需要打開端口即可。

對於開放端口:

iptables -I INPUT -p tcp --dport 6001 --syn -j ACCEPT
service iptables save

如果服務器上沒有端口問題那么你可以做這個我個人的經驗測試。

我個人會做的是使用 Nginx 服務器作為反向代理。 這樣您就可以通過 Nginx 安裝 SSL 證書,然后將流量代理到 Laravel 回顯服務器。

代理規則如下所示:

location /ws/{

    proxy_pass http://127.0.0.1:6001/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Forwarded-For $remote_addr;
}

然后,與其在前端使用https://your_domain:6001 ,不如使用https://your_domain/ws ,它會在內部將流量代理到 echo 服務器。

讓我知道事情的后續!

如果您想了解更多關於制作的信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM