nginx теперь поддерживает прокси-серверы, но мне не удалось найти информацию о том, как это сделать без отдельного местоположения, который применяется к URI, на которых используются веб-интерфейсы.nginx back proxy websockets
Я видел некоторых людей, рекомендуя некоторые вариации этого подхода:
location/{
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://host:port;
}
это будет правильный путь к прокси стандартного HTTP, а также WebSockets? Я не хочу, чтобы заголовок Upgrade или Connection был установлен на «upgrade», если это не то, что отправил браузер, но эти строки proxy_set_header необходимы для работы web-камер. Почему nginx просто пересылает исходные заголовки Upgrade/Connection?
Я экспериментировал с этим и обнаружил, что nginx не проксирует заголовок Upgrade и изменяет заголовок Connection на «close» из «upgrade», если работает без двух строк proxy_set_header. С ними Connection является «обновлением» для запросов, отличных от websocket, что также плохо.
Спасибо :)