HTTP 프록시 설정이 PostgreSQL 연결을 고치지 못하는 이유
PostgreSQL의 데이터베이스 프로토콜을 HTTP 라우팅과 분리하고 SOCKS에 필요한 소켓 경로를 확인합니다.
http.proxyHost 는 참여하는 HTTP 클라이언트를 라우팅할 수 있지만 PostgreSQL JDBC에는 아무것도 하지 않습니다. PostgreSQL은 데이터베이스 프로토콜을 보내며 HTTP 요청을 보내지 않습니다.
JDBC 연결 URL은 여전히 데이터베이스 서버와 데이터베이스를 지정해야 합니다. 서버를 HTTP 프록시 주소로 바꾸는 것으로는 드라이버에 CONNECT를 가르칠 수 없습니다.
SOCKS 서비스라면 JDBC 아래의 소켓 구현을 조사하십시오. Java는 참여하는 소켓에 대해 다음 시작 속성을 노출합니다.
-DsocksProxyHost=203.0.113.10 -DsocksProxyPort=1080문서의 엔드포인트를 바꾸십시오. 이것은 JVM 인수이며 JDBC URL 매개변수가 아닙니다. 실제 JDK/드라이버 소켓 경로와 사용자 정의 소켓 팩터리가 있으면 그것을 확인한 뒤 사용을 기대하십시오.
속성은 프로세스 전체에 적용되므로 영향 평가에 다른 연결도 포함하십시오. 데이터베이스 트래픽만 이 경로를 이용해야 한다면 문서화된 전용 커넥터나 승인된 터널이 더 명확한 경계를 제공할 수 있습니다.
프록시는 여전히 데이터베이스 포트에 대한 권한과 도달 가능성이 필요합니다. 그다음 데이터베이스가 호스트 접근 규칙, 대상 TLS, 자체 로그인을 적용합니다. 인증서의 호스트 이름을 유지하고 데이터베이스 계정을 프록시 계정과 분리하십시오.
처음 실패한 단계를 기록하십시오. 프록시 연결, 협상, 데이터베이스 TCP, TLS 또는 데이터베이스 로그인입니다. 그 증거가 다음 변경을 식별합니다. 사용하지 않는 HTTP 속성을 반복해서 조정하는 것으로는 그렇게 할 수 없습니다.