У меня есть сайт, который я хотел бы улучшить с помощью функций на основе 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.
Пожалуйста, уточните, действительно ли это решение просто полирует какашку