http.proxyHost có thể định tuyến một ứng dụng HTTP tham gia nhưng không làm gì với PostgreSQL JDBC. PostgreSQL gửi giao thức cơ sở dữ liệu của nó, không phải yêu cầu HTTP.

URL kết nối JDBC vẫn phải nêu tên máy chủ cơ sở dữ liệu và cơ sở dữ liệu. Thay máy chủ của nó bằng địa chỉ proxy HTTP không thể dạy trình điều khiển CONNECT.

Với dịch vụ SOCKS, hãy điều tra cách triển khai socket bên dưới JDBC. Java cung cấp các thuộc tính khởi động này cho các socket tham gia:

-DsocksProxyHost=203.0.113.10 -DsocksProxyPort=1080

Thay điểm cuối trong tài liệu. Đây là đối số JVM, không phải tham số URL JDBC. Xác minh đường dẫn socket thực tế của JDK/trình điều khiển và mọi nhà máy socket tùy chỉnh trước khi mong đợi nó sử dụng chúng.

Các thuộc tính áp dụng cho toàn bộ tiến trình, vì vậy hãy đưa các kết nối khác vào đánh giá tác động. Một trình kết nối chuyên dụng được ghi tài liệu hoặc một đường hầm đã được phê duyệt có thể mang lại ranh giới rõ ràng hơn khi chỉ lưu lượng cơ sở dữ liệu nên đi theo tuyến này.

Proxy vẫn cần quyền và khả năng tiếp cận cổng cơ sở dữ liệu. Sau đó cơ sở dữ liệu áp dụng quy tắc truy cập máy chủ, TLS đích và đăng nhập của chính nó. Giữ nguyên tên máy chủ của chứng chỉ và tách tài khoản cơ sở dữ liệu khỏi tài khoản proxy.

Ghi lại giai đoạn thất bại đầu tiên: kết nối proxy, thương lượng, TCP cơ sở dữ liệu, TLS hoặc đăng nhập cơ sở dữ liệu. Bằng chứng đó xác định thay đổi tiếp theo; việc điều chỉnh lặp lại các thuộc tính HTTP không dùng đến không thể làm được điều đó.

Bài viết liên quan