ហេតុអ្វីការកំណត់ HTTP proxy មិនជួសជុលការតភ្ជាប់ PostgreSQL
បំបែកពិធីការមូលដ្ឋានទិន្នន័យ PostgreSQL ចេញពី HTTP routing ហើយពិនិត្យផ្លូវ socket ដែល SOCKS ត្រូវការ។
http.proxyHost អាចបញ្ជូន HTTP client ដែលចូលរួម ប៉ុន្តែមិនធ្វើអ្វីសម្រាប់ PostgreSQL JDBC ទេ។ PostgreSQL ផ្ញើពិធីការមូលដ្ឋានទិន្នន័យរបស់វា មិនមែនសំណើ HTTP ទេ។
URL តភ្ជាប់ JDBC នៅតែត្រូវឈ្មោះម៉ាស៊ីនមេមូលដ្ឋានទិន្នន័យ និងមូលដ្ឋានទិន្នន័យ។ ការជំនួសម៉ាស៊ីនមេរបស់វាដោយអាសយដ្ឋាន HTTP proxy មិនអាចបង្រៀន driver នូវ CONNECT បានទេ។
សម្រាប់សេវា SOCKS សូមស៊ើបអង្កេតការអនុវត្ត socket នៅក្រោម JDBC។ Java បង្ហាញលក្ខណៈសម្បត្តិចាប់ផ្តើមទាំងនេះសម្រាប់ socket ដែលចូលរួម៖
-DsocksProxyHost=203.0.113.10 -DsocksProxyPort=1080ជំនួសចំណុចបញ្ចប់នៃឯកសារ។ ទាំងនេះជា អាគុយម៉ង់ JVM មិនមែនប៉ារ៉ាម៉ែត្រ URL JDBC ទេ។ ផ្ទៀងផ្ទាត់ផ្លូវ socket ពិតប្រាកដរបស់ JDK/driver និងរោងចក្រ socket ផ្ទាល់ខ្លួនណាមួយ មុនពេលរំពឹងថាវានឹងប្រើពួកវា។
លក្ខណៈសម្បត្តិអនុវត្តចំពោះដំណើរការទាំងមូល ដូច្នេះបញ្ចូលការតភ្ជាប់ផ្សេងទៀតក្នុងការវាយតម្លៃផលប៉ះពាល់។ កុងណិកទ័រជាក់លាក់ដែលបានចងក្រង ឬផ្លូវរូងក្រោមដីដែលបានអនុម័តអាចផ្តល់ព្រំដែនច្បាស់ជាង នៅពេលដែលមានតែចរាចរណ៍មូលដ្ឋានទិន្នន័យប៉ុណ្ណោះគួរដើរតាមផ្លូវនេះ។
Proxy នៅតែត្រូវការការអនុញ្ញាត និងការទៅដល់ port មូលដ្ឋានទិន្នន័យ។ បន្ទាប់មក មូលដ្ឋានទិន្នន័យអនុវត្តច្បាប់ចូលប្រើម៉ាស៊ីន គោលដៅ TLS និងការចូលរបស់វាផ្ទាល់។ រក្សាឈ្មោះម៉ាស៊ីនរបស់វិញ្ញាបនបត្រ ហើយរក្សាគណនីមូលដ្ឋានទិន្នន័យដាច់ដោយឡែកពីគណនី proxy។
កត់ត្រាដំណាក់កាលបរាជ័យដំបូង៖ ការតភ្ជាប់ proxy ការចរចា TCP មូលដ្ឋានទិន្នន័យ TLS ឬការចូលមូលដ្ឋានទិន្នន័យ។ ភស្តុតាងនោះកំណត់ការផ្លាស់ប្តូរបន្ទាប់; ការកែសម្រួលលក្ខណៈសម្បត្តិ HTTP ដែលមិនបានប្រើម្តងហើយម្តងទៀតមិនអាចធ្វើបានទេ។