Thứ tự ưu tiên biến proxy và bỏ qua trong gRPC C-Core
Theo dõi thứ tự ưu tiên proxy và bỏ qua của gRPC Core mà không giả định một bản triển khai gRPC khác dùng cùng mapper.
Việc thay đổi http_proxy có thể không có tác dụng khi đã có một cài đặt gRPC có độ ưu tiên cao hơn. Hãy bắt đầu bằng việc xác định bản triển khai: hành vi sau thuộc về mapper proxy HTTP mặc định của gRPC C-Core và các thành phần phụ thuộc nó.
Mapper kiểm tra đối số proxy của kênh, rồi grpc_proxy, rồi https_proxy, rồi http_proxy, và dừng ở giá trị được cấu hình đầu tiên.
Việc phát hiện bỏ qua có thứ tự riêng: no_grpc_proxy được ưu tiên hơn no_proxy. Một giá trị cũ ở đó có thể giải thích vì sao một mục tiêu tránh proxy vốn được cấu hình.
Mapper này dùng HTTP CONNECT. URI proxy được tài liệu hóa của nó mong đợi một lược đồ HTTP; một dịch vụ gRPC được bảo vệ bằng TLS không tự nó đòi hỏi điểm cuối proxy được bảo vệ bằng TLS. Hãy kiểm tra riêng cơ chế xác thực được hỗ trợ thay vì giả định rằng có sẵn bất kỳ lược đồ đăng nhập trình duyệt nào. Với mục tiêu gRPC công khai nơi các trung gian công khai được phép, danh sách proxy HTTP cung cấp các điểm cuối ứng viên cho URI proxy HTTP đã chọn; hãy xác nhận quyền truy cập tới mục tiêu và cổng CONNECT thực tế.
Một bản triển khai gRPC bằng Java, Go, JavaScript hoặc ngôn ngữ khác có thể có mã vận chuyển và cấu hình khác. Đừng áp dụng danh sách biến của C-Core như một quy tắc phổ quát cho mọi thứ mang tên gRPC.
Với một kênh thất bại, hãy giữ lại proxy đã chọn, quyết định bỏ qua, mục tiêu và giai đoạn lỗi. Một HTTP API truy cập được qua client khác không chứng minh rằng mapper này đã dùng cùng cài đặt hay proxy cho phép đích CONNECT cần thiết.