Tôi có một proxy ngược Nginx, proxy này ngừng hoạt động một cách bí ẩn sau vài giờ. Nhật ký lỗi chứa đầy lỗi SSL khi kết nối với thượng nguồn. Chạy "nginx -s reload" (khởi động lại dịch vụ nginx) sẽ khắc phục sự cố cho đến khi xảy ra lỗi tiếp theo. Bất kỳ ý tưởng nơi để đào thêm?
Tệp cấu hình không thay đổi, không có bất kỳ hoạt động nào khác trong nhật ký. Không thể xác định chính xác "thời gian thất bại", đôi khi có vẻ như là 3-4 giờ, đôi khi khoảng 8 giờ.
Ứng dụng là một số ứng dụng web động dựa trên Java Swing của bên thứ ba từ hầm chứa kinh dị của doanh nghiệp cũ... :)
Đoạn mã cho một trong số các Vị trí cấu hình Nginx cho vị trí URI cụ thể. Không thể sử dụng một / vị trí vì một trong những vị trí cần có ủy quyền MTLS và những vị trí khác chỉ cần dựa vào danh sách trắng.
vị trí ~* ^/app-location(/?|/.*|-.*)$ {
bao gồm /etc/nginx/conf.d/include.APP.whitelist;
proxy_pass https://__APP_LB_DNS__:6443;
proxy_ssl_server_name bật;
proxy_ssl_name __APP_LB_DNS__;
proxy_ssl_trusted_certificate __certificate-backend-ca-location__;
tắt proxy_ssl_verify;
proxy_ssl_verify_depth 3;
bật proxy_ssl_session_reuse;
proxy_ssl_certificate __client-certificate-location__;
proxy_ssl_certificate_key __client-cert-key-location__;
}
Sau một thời gian, tôi bắt đầu nhận được lỗi 502: Bad Gateway và error.log chứa đầy các lỗi như vậy. 10.0.0.10 là IP cân bằng tải ngược dòng cho tên máy chủ APP_LB_DNS.
2022/02/09 21:36:45 [lỗi] 12371#12371: *59560 SSL_do_handshake() không thành công (SSL: error:14094410:SSL routines:ssl3_read_bytes:sslv3 cảnh báo bắt tay thất bại:SSL cảnh báo số 40) trong khi SSL bắt tay ngược dòng , ứng dụng khách: CLIENT_IP, máy chủ: EXTERNAL_DNS_NAME, yêu cầu: "GET /app-location/ HTTP/1.1", ngược dòng: "https://10.0.0.10:6443/app-location/", máy chủ lưu trữ: "EXTERNAL_DNS_NAME", liên kết giới thiệu: "http://CLIENT_DNS:53998/"
Tôi đã phải thêm các tùy chọn để đảm bảo Nginx đang giao tiếp với LB phụ trợ Azure thông qua tên DNS của nó. Nếu không, tôi đã nhận được lỗi ở trên liên tục. Một điều khác khiến tôi bối rối là chỉ có ứng dụng kỳ lạ này mới yêu cầu các tùy chọn như vậy. Các ứng dụng viết trong nhà khác hoạt động tốt mà không cần những dòng đó.
proxy_ssl_server_name bật;
proxy_ssl_name __APP-DNS__;
Máy chủ đang chạy Nginx trên Centos 7 trong máy ảo Azure
nginx-1.18.0-2.el7.ngx.x86_64
nginx-modsecurity3-centos7-3.0.4-1.x86_64