У меня есть очень простая настройка обратного прокси-сервера nginx для openstreetmaps:
рабочие_процессы 1;
журналы error_log/уведомление об ошибках.log;
логи pid/nginx.pid;
События {
worker_connections 1024;
}
http {
отложить_выход 0;
log_format logresponsetime '$remote_addr - $remote_user [$time_local] "$request" $status $bytes_sent "$http_referer" "$http_user_agent" $request_time $upstream_response_time';
access_log logs/access.log logresponsetime;
резолвер 192.168.0.1 ipv6=выкл;
#Настройки прокси по умолчанию:
прокси_http_версия 1.1;
proxy_set_header Соединение "";
proxy_read_timeout 600;
proxy_ssl_server_name включено;
вверх по течению tile.openstreetmap.org {
сервер tile.openstreetmap.org:443;
поддержка активности 10;
keepalive_time 5м;
}
сервер {
слушать 480;
access_log logs/osm.http.access.log logresponsetime;
имя_сервера $имя хоста;
место расположения / {
резолвер 192.168.0.1 ipv6=выкл;
proxy_set_header User-Agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/91.0.4472.77 Safari/537.36";
proxy_pass https://tile.openstreetmap.org;
}
}
}
Есть строка для установки заголовка User-Agent, поскольку этого требует OSM, а мне нужна совместимость с клиентом, который не отправляет строку пользовательского агента. Однако, когда nginx устанавливает этот заголовок, примерно 10% запросов терпят неудачу (nginx возвращает клиенту 502), и мой журнал ошибок nginx заполняется следующим образом:
13.06.2021, 14:37:49 [ошибка] 67240#87020: *71 connect() failed (10060: попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или установленное соединение не удалось из-за подключения хост не ответил) при подключении к восходящему каналу, клиент: 127.0.0.1, сервер: сервер, запрос: «GET /16/64153/41313.png HTTP/1.1», восходящий поток: «https://151.101.166.217:443». /16/64153/41313.png", хост: "localhost:480"
Без proxy_set_header все нормально. Все запросы в этом случае выполняются из Chrome, поэтому пользовательский агент, видимый серверами OSM, должен быть одинаковым в обоих случаях.
Версия nginx — 1.19.10 (Windows). Что я делаю не так?