Topik ini menjelaskan cara mengonfigurasi server proxy NGINX untuk mengatasi masalah konektivitas jaringan antara DBGateway dan titik akhir Database Autonomy Service (DAS).
Skenario
Anda mungkin perlu menggunakan proxy NGINX dalam skenario berikut:
Setelah membuat domain keamanan, koneksi langsung antara DBGateway dan titik akhir DAS tidak dapat dilakukan.
DBGateway terhubung ke titik akhir DAS melalui Internet, tetapi koneksi jaringannya bersifat intermiten atau terputus. Anda ingin mengarahkan lalu lintas melalui server proxy NGINX internal yang meneruskan data ke titik akhir DAS.
Ikhtisar solusi
Diagram berikut menunjukkan bagaimana NGINX bertindak sebagai proxy aliran TCP antara DBGateway dan titik akhir DAS.

DBGateway terhubung ke server proxy NGINX pada Port 80. Server NGINX kemudian meneruskan lalu lintas TCP ke titik akhir DAS. Untuk mengarahkan ulang lalu lintas DBGateway ke proxy NGINX, tambahkan entri file hosts pada mesin DBGateway yang memetakan domain titik akhir DAS ke alamat IP server proxy NGINX.
Prasyarat
Server Linux yang memiliki akses jaringan ke DBGateway dan titik akhir DAS.
Hak istimewa root atau sudo pada server Linux.
Alat pengembangan untuk mengompilasi NGINX dari source (gcc, make, dan pustaka terkait).
Prosedur
Langkah 1: Instal NGINX dengan modul stream
Unduh dan ekstrak kode sumber NGINX.
wget http://nginx.org/download/nginx-1.17.4.tar.gz tar -zxvf nginx-1.17.4.tar.gz cd nginx-1.17.4Kompilasi dan instal NGINX. Sertakan flag
--with-streamuntuk mengaktifkan modul stream guna proxy TCP. Secara default, NGINX diinstal di direktori/usr/local/nginx/../configure --with-http_ssl_module --with-http_v2_module --with-stream make sudo make install
Langkah 2: Konfigurasikan NGINX sebagai proxy aliran TCP
Buat file konfigurasi untuk proxy stream NGINX.
sudo bash -c 'cat << EOF > /usr/local/nginx/conf/hdm-master.conf
worker_processes auto;
events {
worker_connections 1024;
}
stream {
upstream backend {
# Ganti dengan titik akhir DAS Anda
server master-hdm-cn-shenzhen.aliyuncs.com:80 max_fails=3 fail_timeout=30s;
hash \$remote_addr consistent;
}
server {
listen 80;
# Tetapkan nilai timeout lebih dari 7 detik untuk mencegah
# error timeout koneksi pada DBGateway.
proxy_connect_timeout 10s;
proxy_timeout 10s;
proxy_pass backend;
}
}
EOF'Tabel berikut menjelaskan parameter utama dalam konfigurasi tersebut.
| Parameter | Nilai | Deskripsi |
|---|---|---|
server (upstream) | master-hdm-cn-shenzhen.aliyuncs.com:80 | Titik akhir DAS. Ganti nilai ini dengan titik akhir untuk wilayah Anda. |
max_fails | 3 | Jumlah maksimum upaya koneksi gagal sebelum server upstream ditandai sebagai tidak tersedia. |
fail_timeout | 30s | Durasi selama jumlah upaya gagal tertentu harus terjadi agar server ditandai sebagai tidak tersedia. Server tetap tidak tersedia selama durasi ini. |
listen | 80 | Port tempat proxy NGINX mendengarkan koneksi masuk dari DBGateway. |
proxy_connect_timeout | 10s | Timeout untuk membuat koneksi ke titik akhir DAS. Harus lebih dari 7 detik untuk menghindari timeout koneksi DBGateway. |
proxy_timeout | 10s | Timeout antara dua operasi baca atau tulis berturut-turut pada koneksi. Harus lebih dari 7 detik untuk menghindari timeout koneksi DBGateway. |
Langkah 3: Jalankan NGINX
Jalankan perintah berikut untuk memulai NGINX dengan konfigurasi proxy:
sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/hdm-master.confLangkah 4: Ikat titik akhir DAS ke proxy NGINX pada mesin DBGateway
Untuk mengarahkan ulang lalu lintas DBGateway ke proxy NGINX, tambahkan entri file hosts pada mesin DBGateway yang memetakan domain titik akhir DAS ke alamat IP server proxy NGINX.
Jalankan perintah berikut pada mesin DBGateway:
# Ganti 11.239.XX.XX dengan alamat IP aktual server proxy NGINX Anda
# Ganti master-hdm-cn-shenzhen.aliyuncs.com dengan titik akhir DAS untuk wilayah Anda
echo "11.239.XX.XX master-hdm-cn-shenzhen.aliyuncs.com" | sudo tee -a /etc/hostsSetelah perubahan ini, ketika DBGateway melakukan resolusi domain titik akhir DAS, koneksi akan dialihkan ke server proxy NGINX, bukan langsung ke titik akhir DAS. Proxy NGINX kemudian meneruskan lalu lintas tersebut ke titik akhir DAS yang sebenarnya.