Tôi có một thiết lập proxy ngược nginx rất cơ bản cho openstreetmaps:
worker_processes 1;
thông báo error_log log/error.log;
nhật ký pid/nginx.pid;
sự kiện {
công_nhân kết_nối 1024 ;
}
http {
hoãn_xuất 0;
log_format logresponsetime '$remote_addr - $remote_user [$time_local] "$request" $status $bytes_sent "$http_referer" "$http_user_agent" $request_time $upstream_response_time';
nhật ký access_log/access.log logresponsetime;
trình phân giải 192.168.0.1 ipv6=tắt;
#cài đặt proxy mặc định:
proxy_http_version 1.1;
proxy_set_header Kết nối "";
proxy_read_timeout 600;
proxy_ssl_server_name bật;
gạch ngược dòng.openstreetmap.org {
máy chủ tile.openstreetmap.org:443;
lưu giữ 10;
keepalive_time 5m;
}
người phục vụ {
nghe 480;
nhật ký access_log/osm.http.access.log logresponsetime;
tên máy chủ $ tên máy chủ;
địa điểm / {
trình phân giải 192.168.0.1 ipv6=tắt;
proxy_set_header Tác nhân người dùng "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, như Gecko) Chrome/91.0.4472.77 Safari/537.36";
proxy_pass https://tile.openstreetmap.org;
}
}
}
Có một dòng để đặt tiêu đề Tác nhân người dùng vì OSM yêu cầu tiêu đề đó và tôi cần khả năng tương thích với ứng dụng khách không gửi chuỗi tác nhân người dùng. Tuy nhiên, khi nginx đặt tiêu đề này, khoảng 10% yêu cầu không thành công (nginx trả về 502 cho máy khách) và nhật ký lỗi nginx của tôi chứa thông tin này:
13/06/2021 14:37:49 [lỗi] 67240#87020: *71 connect() fail (10060: Nỗ lực kết nối không thành công do bên được kết nối không phản hồi đúng sau một khoảng thời gian hoặc kết nối được thiết lập không thành công do đã kết nối máy chủ không phản hồi) trong khi kết nối với thượng nguồn, máy khách: 127.0.0.1, máy chủ: máy chủ, yêu cầu: "GET /16/64153/41313.png HTTP/1.1", ngược dòng: "https://151.101.166.217:443 /16/64153/41313.png", máy chủ lưu trữ: "localhost:480"
Không có proxy_set_header, mọi thứ đều ổn. Tất cả các yêu cầu trong trường hợp này đều được tạo từ chrome, do đó, Tác nhân người dùng mà máy chủ OSM nhìn thấy phải giống nhau trong cả hai trường hợp.
phiên bản nginx là 1.19.10 (windows). Tôi đang làm gì sai?