Laravel-echo-сервер, net :: ERR_CONNECTION_TIMED_OUT - PullRequest
0 голосов
/ 05 июля 2019

У меня странная проблема только на живом сервере, использующем laravel-echo-server , redis , ssl .

Ошибка: GET https://dev.my_domain.com:6001/socket.io/?EIO=3&transport=polling&t=Ml1g-Fq net::ERR_CONNECTION_TIMED_OUT

Ниже вы можете найти мои конфиги: laravel-echo-server.json

{
    "authHost": "https://dev.my_domain.com",
    "authEndpoint": "/broadcasting/auth",
    "clients": [],
    "database": "redis",
    "databaseConfig": {
        "redis": {
            "port": "6379",
                    "host": "127.0.0.1"
        }
    },
    "devMode": true,
    "host": null,
    "port": "6001",
    "protocol": "https",
    "socketio": {},
    "sslCertPath": "/etc/letsencrypt/live/dev.my_domain.com/fullchain.pem",
    "sslKeyPath": "/etc/letsencrypt/live/dev.my_domain.com/privkey.pem"
}

Bootstrap.js

import Echo from 'laravel-echo';

window.io = require('socket.io-client');

window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: window.location.hostname + ':6001'
});

Порт 6001 включен: tcp6 0 0 :::6001 :::* LISTEN 10728/laravel-echo-

После запуска laravel-echo-server запустите

L A R A V E L  E C H O  S E R V E R

version 1.5.5

⚠ Starting server in DEV mode...

✔  Running at localhost on port 6001
✔  Channels are ready.
✔  Listening for http events...
✔  Listening for redis events...

Server ready!

Он работает на моем локальном хосте без конфигурации ssl.

Дайте мне знать, если у кого-то есть решение дляэта проблема,

Спасибо всем заранее

1 Ответ

0 голосов
/ 10 июля 2019

Я нашел решение своей проблемы.

ниже конфигов теперь вроде нормально:),

Сначала нужно обновить конфиги apache2: Включить модули:

a2enmod proxy_wstunnel

Обновление Apache Config Location: /etc/apache2/sites-available/**your_domain_config**.conf

Добавлено здесь:

    SSLEngine on
    SSLProxyEngine On
    ProxyRequests Off
    ProxyPass        /socket.io http://dev.DOMAIN.com:6001/socket.io
    ProxyPassReverse /socket.io http://dev.DOMAIN.com:6001/socket.io

    RewriteEngine on
    RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
    RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
    RewriteRule .* ws://dev.DOMAIN.com:6001%{REQUEST_URI} [P]

Перезапустите Apache:

systemctl restart apache2

Мой laravel-echo-server-json:

{
    "authHost": "https://dev.DOMAIN.com",
    "authEndpoint": "/broadcasting/auth",
    "clients": [],
    "database": "redis",
    "databaseConfig": {
        "redis": {
            "port": "6379",
            "host": "127.0.0.1"
        }
    },
    "devMode": true,
    "host": null,
    "port": "6001",
    "protocol": "https",
    "socketio": {},
    "sslCertPath": "/etc/letsencrypt/live/DOMAIN/fullchain.pem",
    "sslKeyPath": "/etc/letsencrypt/live/DOMAIN/privkey.pem"
}

Обновление Bootstrap.js:

import Echo from 'laravel-echo';

window.io = require('socket.io-client');

window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: { path: '/socket.io' }
});
...