Назад | Перейти на главную страницу

Nginx: proxy_set_header «Обновление» замедляет работу сервера

У меня есть сайт, который я хотел бы улучшить с помощью функций на основе WebSocket. Сайт находится за обратным прокси-сервером Nginx.

Моя конфигурация для сервера выглядит так:

    location / {
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_ignore_client_abort on;
        proxy_redirect http://weblogic:8080/ $scheme://$host:$server_port/;
        proxy_pass http://weblogic:8080/;

        access_log  /var/log/nginx/weblogic.frontend.access.log  main;
    }

Речь идет об изменении proxy_set_header Connection "Upgrade"; линия. Это тот, который я вставил из-за WebSocket.

Я попробовал, и он работает, но проблема в том, что как только эта строка появляется в конфигурации, каждое перенаправление становится мучительно медленным. Запросы, которые выполнялись за секунды, теперь занимают полминуты на оценку. Как я могу предотвратить эту проблему, сохранив при этом возможность использовать WebSocket?

PS: Я провел дополнительное тестирование и могу подтвердить, что только запрос, возвращающийся с 302, медленный. Я попытался изменить proxy_redirect свойство на тот, который не использует переменные, но мне не повезло.

Я нашел решение. Я не знаю, «решает» ли это проблему, но пока она определенно хорошо ее покрывает.

Что я сделал, так это поместил связь через веб-сокет в другое место с вышеупомянутыми настройками, в то время как местоположение, не относящееся к веб-сокету, осталось нормальным proxy_pass-ing.

Пожалуйста, уточните, действительно ли это решение просто полирует какашку