Puncte:0

nginx: Utilizarea proxy_set_header are ca rezultat conexiuni eșuate în amonte

drapel in

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?

Richard Smith avatar
drapel jp
Trebuie să plasați toate instrucțiunile `proxy_set_header` în același bloc, dacă doriți ca toate să se aplice. Există două instrucțiuni `proxy_set_header` în configurația dvs. și sunt în blocuri diferite.
drapel in
multumesc @RichardSmith, problema rezolvata! foarte apreciat

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.