Невозможно подключиться через WebSockets с прокси-сервером nginx

Моя установка состоит в том, что экземпляр Chrome без головы работает на http: // localhost: 9222 . Он работает, если я подключаюсь к нему напрямую через клиент WebSocket.

Я хотел бы поставить перед ним блок сервера Nginx в качестве прокси (позже я добавлю аутентификацию и т. Д.).

Моя конфигурация - это :

server {
    # Logic configuration

    server_name chrome.example.eu;

    access_log /opt/chrome/access.log;
    error_log /opt/chrome/error.log;

    location / {
        proxy_pass http://127.0.0.1:9222;
        proxy_http_version 1.1;
        proxy_set_header Host $host;

        location /devtools/page/ {
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_read_timeout 86400;
        }
    }

    # Networking

    listen 80;
}

HTTP-часть работает нормально. Пользовательский интерфейс Chrome devtools отображается, если я открываю http://chrome.mydomain.eu . Однако соединение с веб-сокетом не может быть установлено.

Браузер пытается подключиться к ws: //chrome.example.eu/devtools/page/6877e641-fc1e-4196-bb55-0c3e1608af4a , но сервер не обновляется до соединения WebSocket. Nginx отправляет ответ 404, а журнал error.log содержит строку, которую я не могу понять:

* 690 open () " Не сомневайтесь, есть ли у вас другие рекомендации.

0
задан 3 August 2017 в 23:57
1 ответ

Попробовали ли вы установить proxy_pass для вашего дочернего сервера? Насколько я знаю, обработчики контента не наследуются.

0
ответ дан 24 November 2019 в 04:09

Теги

Похожие вопросы