Am o configurare de bază a proxy invers nginx pentru openstreetmaps:
lucrător_procese 1;
error_log logs/error.log notificare;
pid logs/nginx.pid;
evenimente {
conexiuni_muncitor 1024;
}
http {
amânare_ieșire 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;
rezolutor 192.168.0.1 ipv6=off;
#setări implicite proxy:
proxy_http_versiunea 1.1;
proxy_set_header Conexiune „”;
proxy_read_timeout 600;
proxy_ssl_server_name activat;
în amonte tile.openstreetmap.org {
server tile.openstreetmap.org:443;
keepalive 10;
keepalive_time 5m;
}
Server {
asculta 480;
access_log logs/osm.http.access.log logresponsetime;
nume_server $nume gazdă;
Locație / {
rezolutor 192.168.0.1 ipv6=off;
proxy_set_header User-Agent „Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, ca Gecko) Chrome/91.0.4472.77 Safari/537.36”;
proxy_pass https://tile.openstreetmap.org;
}
}
}
Există o linie pentru a seta antetul User-Agent deoarece OSM o cere și am nevoie de compatibilitate cu un client care nu trimite un șir de agent de utilizator. Cu toate acestea, când nginx setează acest antet, aproximativ 10% dintre solicitări eșuează (nginx returnează 502 clientului), iar jurnalul meu de erori nginx se umple cu asta:
2021/06/13 14:37:49 [eroare] 67240#87020: *71 connect() failed (10060: O încercare de conectare a eșuat deoarece partea conectată nu a răspuns corect după o perioadă de timp sau conexiunea stabilită a eșuat deoarece conectată gazda nu a răspuns) în timpul conectării la amonte, client: 127.0.0.1, server: server, cerere: „GET /16/64153/41313.png HTTP/1.1”, în amonte: „https://151.101.166.217:443 /16/64153/41313.png", gazdă: "localhost:480"
Fără proxy_set_header, totul este în regulă. Solicitările în acest caz sunt toate făcute din Chrome, așa că User-Agent, așa cum este văzut de serverele OSM, ar trebui să fie același în ambele cazuri.
Versiunea nginx este 1.19.10 (Windows). ce fac greșit?