Mengapa Pengaturan Proxy HTTP Tidak Memperbaiki Koneksi PostgreSQL
Pisahkan protokol basis data PostgreSQL dari perutean HTTP dan periksa jalur soket yang diperlukan untuk SOCKS.
http.proxyHost dapat merutekan klien HTTP yang berpartisipasi, tetapi tidak melakukan apa pun untuk PostgreSQL JDBC. PostgreSQL mengirim protokol basis datanya, bukan permintaan HTTP.
URL koneksi JDBC tetap harus menyebutkan server basis data dan basis datanya. Mengganti servernya dengan alamat proxy HTTP tidak dapat mengajarkan CONNECT kepada driver.
Untuk layanan SOCKS, telusuri implementasi soket di bawah JDBC. Java menyediakan properti startup ini untuk soket yang berpartisipasi:
-DsocksProxyHost=203.0.113.10 -DsocksProxyPort=1080Ganti titik akhir dokumentasi. Ini adalah argumen JVM, bukan parameter URL JDBC. Verifikasi jalur soket JDK/driver yang sebenarnya dan pabrik soket kustom apa pun sebelum mengharapkannya menggunakannya.
Properti berlaku untuk seluruh proses, jadi sertakan koneksi lain dalam penilaian dampak. Konektor khusus yang terdokumentasi atau terowongan yang disetujui dapat memberikan batas yang lebih jelas ketika hanya lalu lintas basis data yang harus melewati jalur tersebut.
Proxy tetap memerlukan izin dan keterjangkauan ke porta basis data. Basis data kemudian menerapkan aturan akses host, TLS tujuan, dan login-nya sendiri. Pertahankan nama host sertifikatnya dan pisahkan akun basis data dari akun proxy.
Catat tahap pertama yang gagal: koneksi proxy, negosiasi, TCP basis data, TLS, atau login basis data. Bukti itu mengidentifikasi perubahan berikutnya; menyesuaikan properti HTTP yang tidak terpakai berulang kali tidak dapat melakukannya.